当我一次插入多条记录时如何忽略重复项?
how to ignore duplicates when I insert many records at once?
我想插入多对多 table,ID1 和 ID2,其中 ID1 总是相同的值,而我有很多 ID2。
我可以使用这个查询:
insert into MyTable (ID1, ID2)
select 1, ID
from AnotherTable
where ID in (1, 2, 3);
但是如果ID1与ID2的某些部分相关联,我会因为唯一性约束而报错。所以我想知道如何忽略重复值并插入其余行。
谢谢。
您可以为此使用 EXCEPT
运算符:
INSERT INTO MyTable (ID1, ID2)
SELECT 1, ID
FROM AnotherTable
WHERE ID in (1, 2, 3)
EXCEPT
SELECT ID1,ID2
FROM MyTable ;
我想插入多对多 table,ID1 和 ID2,其中 ID1 总是相同的值,而我有很多 ID2。
我可以使用这个查询:
insert into MyTable (ID1, ID2)
select 1, ID
from AnotherTable
where ID in (1, 2, 3);
但是如果ID1与ID2的某些部分相关联,我会因为唯一性约束而报错。所以我想知道如何忽略重复值并插入其余行。
谢谢。
您可以为此使用 EXCEPT
运算符:
INSERT INTO MyTable (ID1, ID2)
SELECT 1, ID
FROM AnotherTable
WHERE ID in (1, 2, 3)
EXCEPT
SELECT ID1,ID2
FROM MyTable ;