我尝试了INSERT OR REPLACE INTO
,但是当它替换记录以更新它时,它不会保留行ID。另一个选择是分两步执行:INSERT OR IGNORE INTO
然后UPDATE
,但我更喜欢一步解决方案。所以我想知道SQLite是否有MERGE
关键字或其他简单的解决方案?
答案 0 :(得分:1)
不,SQLite不支持MERGE
或upsert。
您可以使用两步解决方案,但您可能真正想要的是ROWID
成为表格中的第一列。如果您将列声明为INTEGER PRIMARY KEY
,则它将是ROWID
的别名。然后INSERT OR REPLACE
将正常工作。