如果表尚未包含具有指定值的欄位,我正在嘗試插入表。為此,我使用了這個命令:INSERT INTO zyprexa (NULL,'hello',0,0,0) SELECT date WHERE NOT EXISTS (SELECT 1 FROM zyprexa WHERE date='hello');所以它應該插入一行帶有 values null,'hello',0,0,0。然后如果它再次執行,它不應該做任何事情,因為已經有一行具有日期值“hello”。但它給了我一個語法錯誤,甚至第一次也不運行它。一切順利。
uj5u.com熱心網友回復:
正確的語法是:
INSERT INTO zyprexa (col1, col2, col3, col4, col5)
SELECT NULL, 'hello', 0, 0, 0
WHERE NOT EXISTS (SELECT 1 FROM zyprexa WHERE date = 'hello');
其中col1, col2, col3, col4,col5是接收值的列的名稱(例如col2應該是date)。
如果您希望該列date在您的表中是唯一的,您應該這樣定義它:
CREATE TABLE zyprexa (
......
date TEXT UNIQUE,
......
);
然后您可以使用 執行INSERT陳述句INSERT OR IGNORE,在這種情況下,如果您嘗試插入一個新行,其中包含date表中已存在的(或任何其他定義為唯一的列),插入將失敗(沒有任何錯誤):
INSERT OR IGNORE INTO zyprexa (col1, col2, col3, col4, col5)
VALUES (NULL, 'hello', 0, 0, 0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447111.html
