我執行插入行插入如下:忽略違反重複鍵索引
INSERT INTO foo (a,b,c)
SELECT x,y,z
FROM fubar
WHERE ...
然而,如果一些正在插入的行違反了FOO重複的關鍵指標,我希望數據庫忽略這些行,並且不插入它們並繼續插入其他行。
有問題的數據庫是Informix 11.5。目前發生的只是數據庫拋出異常。如果我嘗試來處理異常:
ON EXCEPTION IN (-239)
END EXCEPTION WITH RESUME;
...它沒有幫助,因爲異常被捕獲後,整個插入被跳過。
我不認爲informix支持INSERT IGNORE或INSERT ... ON DUPLICATE KEY ...,但如果我錯了,隨時糾正我。
Informix支持離開連接嗎?如果是這樣,你可以不查詢已經在foo中的行。 – 2010-02-01 18:15:46
Informix確實支持LEFT JOIN。它也(IDS 11.50)支持可用於插入新行或更新現有行的MERGE。 – 2010-02-02 15:32:50
我在這裏錯過了什麼嗎?爲什麼索引是唯一的?這聽起來像這個問題應該重命名爲「如何在Informix中創建一個非唯一索引?」 – 2010-02-02 15:55:26