gpt4 book ai didi

sql - 将数据从表复制到执行 INSERT 或 UPDATE 的表

转载 作者:行者123 更新时间:2023-12-03 02:42:05 25 4
gpt4 key购买 nike

我需要将大量数据从一个表复制到另一个表。如果数据已经存在,我需要更新它,否则我需要插入它。使用 WHERE 条件选择要复制的数据。数据有一个主键(最多 12 个字符的字符串)。

如果我只是插入数据,我会这样做

INSERT INTO T2 SELECT COL1, COL2 FROM T1 WHERE T1.ID ='I'

但我不知道如何进行插入/更新。我不断看到对更新插入和合并的引用,但合并似乎有问题,而且我不知道如何对多个记录进行更新插入。

最好的解决方案是什么?

最佳答案

如果你想避免合并(尽管你不应该害怕它)你可以这样做

update t2
set col1 = t1.col1
,col2 = t1.col2
from t2
join t1
on t2.[joinkey] = t1.[joinkey]
where [where clause]

然后是那些你没有的

insert into t2(col1,col2)
select col1,col2 from t1
where not exists (select * from t2 where t1.[joinkey] = t2.[joinkey])

通过这种方式,您首先更新匹配的内容,然后插入不匹配的内容。另外,如果您想要一次性完成,您可以将其包装在交易中。

关于sql - 将数据从表复制到执行 INSERT 或 UPDATE 的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049563/

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