gpt4 book ai didi

sql - 删除sql server中的功能增量负载

转载 作者:行者123 更新时间:2023-12-02 00:32:45 26 4
gpt4 key购买 nike

我需要删除存在于目标表中但不存在于源表中的记录。目标表中的主键是源表中不存在的 auto_increment ID。源表和目标表都包含一组唯一的键组合,可用于唯一标识任一表中的行。我应该遵循什么方法?如果我要使用多个列组合作为唯一键而不是一个主键(源代码中没有),我该如何删除?

 delete from dest_table
where (uniq_key_col1,uniq_key_col2) not in (
select dest.uniq_key_col1,dest.uniq_key_col2
from dest_table dest
join source_table source
on dest.uniq_key_col1=source.uniq_key_col1
and dest.uniq_key_col2=source.uniq_key_col2
)

这是理想情况下的样子(只是为了清楚起见,请忽略 where 子句中由于多列而导致的错误)

最佳答案

您可以使用存在。即:

delete from dest_table
where not exists (
select *
from source_table source
where dest_table.uniq_key_col1=source.uniq_key_col1
and dest_table.uniq_key_col2=source.uniq_key_col2
);

关于sql - 删除sql server中的功能增量负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com