【发布时间】:2019-11-01 13:21:05
【问题描述】:
我正在定期归档某个表,并希望避免在该归档中出现重复项。我的表中没有唯一的列,所以我目前正在使用以下方法:
INSERT INTO archive (colA, colB, colC)
SELECT
colA, colB, colC
FROM
dim.source src
WHERE
CONCAT(src.colA, src.colB, src.colC) NOT IN (SELECT CONCAT(colA, colB, colC) FROM archive)
这行得通,但鉴于存档包含 >40M 行,它非常慢(10 分钟以上)。有没有更有效的选择?
谢谢!
我在 stackoverflow 上尝试了其他几种解决方案,但它们对我不起作用并导致错误消息
【问题讨论】:
-
我很困惑。 MySQL 不支持以
#开头的表名。 -
我不是在 MySQL 中工作,而是在 SQL 中工作。不过,stackoverflow 搜索显示了两者的结果
标签: sql sql-server insert duplicates