注意:此問題特別針對HSQLDB和Informix。HSQLDB -Query - 如果不存在則插入第一條記錄
我想插入新的條目,如果不存在在表中,我知道我們可以使用存在的查詢插入基於現有的條目。
例如:
INSERT INTO test(column1)
(SELECT DISTINCT 3
FROM test
WHERE NOT EXISTS (SELECT * FROM test WHERE column1 =3));
問題是:條件組合使用與子查詢,被認爲要滿足的存在,如果所述子查詢返回的至少一行。那麼只有我們可以在SELECT,INSERT,UPDATE或DELETE語句中使用。
您的INSERT看起來不對。您尚未存在的新數據在哪裏? – fredt
@fredt:在示例查詢中,新數據是「3」,在EXISTS子查詢的選擇列表和WHERE子句中引用。 –
我不清楚你的問題是什麼。你的'問題是'段落概述了爲什麼INSERT語句會做你說你想做的事情,所以我不明白哪裏出現了呃逆。有沒有其他的DBMS以某種方式處理這個問題?如果您有適當的主鍵約束,如果表中已經有一行具有相同的鍵數據,則簡單的INSERT將無法插入;你所要做的就是決定忽略錯誤(你忽略了一個特定的錯誤條件,而不是全部)。如果你願意,你可以使用存儲過程來處理它。請澄清你的問題。 –