当我一次插入多条记录时如何忽略重复项?

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 ;