0
我有一張表,我想防止插入重複的行。如何創建即使列爲NULL也可以工作的UNIQUE約束條件
CREATE TABLE blah(id INTEGER PRIMARY KEY ASC, a INTEGER, b INTEGER, c, d, e, f,
UNIQUE (a,b,c,d,e,f) ON CONFLICT IGNORE);
現在我插入一些記錄:
INSERT INTO event2 (a,b,c,d)
VALUES (1,1405451500,"Y",100),
(1,1405451555,"Z",115);
現在,如果我重新運行上面的命令,我希望它不插入任何東西,因爲新行完全匹配的是已經存在。相反,我看到插入了兩個新行。
讀SQLite documentation,看來SQLite不強制UNIQUE約束如果一個或多個列的是NULL。如果有一些方法可以使用其他機制來實現這個目標?在上述情況下,c
,d
,e
和f
列可能爲空。或者,我可以使用空字符串而不是NULL,但閱讀其他答案似乎表明null不應與空字符串混淆,因爲它們表示單獨的東西。
您的表格結構沒有意義。主鍵應該是自動唯一的。您的初始插入應該失敗,因爲'id'被聲明爲主鍵。 –
@GordonLinoff好抓。固定。 – Michael