如果標簽和 url 組合已經存在,我試圖忽略插入:
INSERT INTO tags(tag, url) VALUES (?, ?);
ON CONFLICT(url, tag) IGNORE
我有一個唯一的索引 (tag, url)
CREATE UNIQUE INDEX tag_url ON tags (tag, url)
該應用程式只是崩潰說 [uncaught application error]: SqliteError - UNIQUE constraint failed: tags.tag, tags.url
uj5u.com熱心網友回復:
您錯誤地使用了 SQLite 的UPSERT語法。
首先,您;在INSERT陳述句之后和之前有一個權利ON CONFLICT,它將陳述句分隔為不同的陳述句。
這意味著該INSERT陳述句作為一個簡單的陳述句執行(ON CONFLICT子句沒有任何區別),所以你會得到UNIQUE constraint failed錯誤。
此外,您使用的是關鍵字IGNORE而不是DO NOTHING。
將您的代碼更改為:
INSERT INTO tags(tag, url) VALUES (?, ?)
ON CONFLICT(tag, url) DO NOTHING;
您可以使用以下INSERT OR IGNORE語法實作相同的效果:
INSERT OR IGNORE INTO tags(tag, url) VALUES (?, ?);
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360095.html
上一篇:SQLiteRunningTotal(但鍵入不同表中的值)
下一篇:排名資料庫元素python
