SQLite:如果存在则更新记录,否则插入?

时间:2010-07-03 09:24:10

标签: sqlite

我尝试了INSERT OR REPLACE INTO,但是当它替换记录以更新它时,它不会保留行ID。另一个选择是分两步执行:INSERT OR IGNORE INTO然后UPDATE,但我更喜欢一步解决方案。所以我想知道SQLite是否有MERGE关键字或其他简单的解决方案?

1 个答案:

答案 0 :(得分:1)

不,SQLite不支持MERGE或upsert。

您可以使用两步解决方案,但您可能真正想要的是ROWID成为表格中的第一列。如果您将列声明为INTEGER PRIMARY KEY,则它将是ROWID的别名。然后INSERT OR REPLACE将正常工作。