假设我有一个用于生成表 B 的表 A。我没有可用于生成表 B 的主键或唯一键ON DUPLICATE KEY
。
我的表 B 有 3 列:A、B 和 C。
INSERT
只有当该行已经不存在时,我才想要这样做。我可以确定该行是否存在是 A 和 B 的组合。我使用WHERE NOT EXISTS
语句来执行此操作。
INSERT INTO TableB
(A, B, C)
SELECT
SUM(A),
SUM(B),
SUM(C)
FROM TableA
WHERE NOT EXISTS (SELECT * FROM TABLE B WHERE A=A AND B=B)
GROUP BY A, B
如果表 B 为空,则插入该行。但是,一旦表 B 有记录,即使表 B 中不存在行,也不会插入任何行。