0
我試過INSERT OR REPLACE INTO
,但它並不保留行ID,當它替換記錄來更新它時。另一種選擇是分兩步執行:INSERT OR IGNORE INTO
然後UPDATE
,但我更喜歡一步解決方案。所以我想知道SQLite是否有像MERGE
關鍵字或其他簡單的解決方案?SQLite:如果存在更新記錄,否則插入它?
我試過INSERT OR REPLACE INTO
,但它並不保留行ID,當它替換記錄來更新它時。另一種選擇是分兩步執行:INSERT OR IGNORE INTO
然後UPDATE
,但我更喜歡一步解決方案。所以我想知道SQLite是否有像MERGE
關鍵字或其他簡單的解決方案?SQLite:如果存在更新記錄,否則插入它?
不,SQLite不支持MERGE
或upsert。
您可以使用兩步式解決方案,但您可能真正想要的是讓ROWID
成爲您表格中的一流專欄。如果您聲明一列爲INTEGER PRIMARY KEY
,則它將成爲ROWID
的別名。然後INSERT OR REPLACE
將正常工作。