sql - 比较 2 个表(基于辅助表插入、更新或删除)
问题描述
想象一下,我有两个具有相似结构的数据库表。所以其中一个是源,另一个是目标。我想使用唯一的 ID 来比较它们,就像Redgate Data Compare
这样,这里是场景:
对于每条新记录,
INSERT
都会执行一个命令。如果源表中不再存在记录,则
DELETE
命令会忽略目标表中的该记录。如果源中的行已更改,
UPDATE
则执行命令。
我尝试了一个存储过程来遍历源中的每条记录并将其与目标进行比较,但它似乎并不理想。
我想知道在 SQL 中进行这种比较的关键词是什么,我想知道这种情况是否有任何预先编写的查询?
解决方案
您可以使用 MERGE 命令
例如检查此链接
推荐阅读
- corda - 将一个cordapp作为corda jar依赖添加到其他corda项目
- kubernetes - 启用 webhook 身份验证 kubelet api
- java - JavaFX 帮助实现拖放
- java - 检索无法反序列化的 Kafka 消息的有效负载和标头
- c - 如何从 Windows 命名管道中读取超时?
- android - RestrictTo 不限制使用受限方法
- java - AES 加密函数返回 null
- linux - 无法生成预期结果的 Linux bash 脚本
- html - 将文件路径转换为可点击的超链接红宝石
- javascript - 如果 div 不为空,如何启用按钮?