Ваш вопрос не ясен, но позвольте мне сформулировать этот ответ:
Если вы хотите вставить несуществующие записи на основе ключевых столбцов, используйте этот шаблон:
-- First set up a virtual table called SRC that contains our manual values
-- This is called a CTE (Common Table Expression)
WITH SRC AS
(
SELECT * FROM
(
VALUES
(1, 226, 5, 1, 5, 3),
(1, 227, 7, 6, 1, 3)
) as T (id, uId, rId, gId, assignedBy, mid)
)
-- select only those values that don't exist in the target and insert them
INSERT INTO membership (id, uId, rId, gId, assignedBy,mid)
SELECT id, uId, rId, gId, assignedBy,mid FROM SRC
WHERE NOT EXISTS (
SELECT *
FROM membership TGT WHERE TGT.mid = SRC.mid)
Разумеется, версия MERGE
, вероятно, будет проще.Вы также можете переписать это многими другими способами - вы можете исключить уже существующие строки в CTE