sqlite,UPDATE或REPLACE

时间:2009-04-15 07:42:40

标签: sqlite

我喜欢

UPDATE或REPLACE someTable SET a = 1,b = 2 WHERE c = 3

我希望如果它不存在,它将被插入到DB中。但没有任何反应,我没有错误。我如何插入数据,如果它已经存在则替换它并使用where的条件(而不是替换唯一ID的BC)

2 个答案:

答案 0 :(得分:17)

小心,INSERT或REPLACE没有“更新或替换”的预期行为。

如果没有设置所有fieds的值,INSERT OR REPLACE将用默认值替换它们,而使用UPDATE时,您希望保留旧值。

请在此处查看我的答案以获取示例:SQLite - UPSERT *not* INSERT or REPLACE

答案 1 :(得分:10)

尝试

INSERT OR REPLACE INTO [someTable] (a,b) VALUES(1,2) WHERE c = '3'