表link_instance_message具有PRIMARY KEY CONSTRAINT,因此您無法在表中爲instance_id,message_id組合創建副本。如果表中已經有intance_id,message_id組合,我怎麼能不完全失敗呢?即使插入的一行碰到PRIMARY KEY約束,我如何繼續插入所有其餘的行?
INSERT INTO link_instance_message
(instance_id, message_id)
select
ins.instance_id as instance_id, mess.message_id as message_id
from
instance as ins,
license as lic,
message as mess
where
ins.license_id = lic.license_id
and lic.license_key = '<INSERT GUID HERE>'
and mess.message_id = (select MAX(message_id) from message)
例如,假設上面的insert語句會在表中沒有行的情況下插入5行。但是,讓我們假設1行已經存在,上面的插入語句會嘗試再次插入。如何插入其他4行,同時忽略已存在的1行違反PRIMARY KEY CONSTRAINT的情況。
幸運的是,有一個保證,一次只有一個用戶會運行這個語句。 :-) 我會在哪裏放不存在......我試過並摸索了一下。 –
另外,請停止使用舊式連接。這些對我來說都像是交叉連接;更不明確的是,你實際上是否意味着其中的一個人。 –
哦,我不是DBA,所以我不知道這些東西。我知道足夠危險的大聲笑。我將如何改變它不使用舊式聯接? –