sqlite,UPDATE或REPLACE

11 sqlite

我做的事情

更新或替换someTable SET a = 1,b = 2 WHERE c = 3

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

gre*_*lom 18

小心,INSERT或REPLACE没有"更新或替换"的预期行为.

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

请参阅我的答案以获取示例:SQLite - UPSERT*not*INSERT或REPLACE


Sam*_*ron 10

尝试

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

  • 此语法无效.考虑使用https://www.sqlite.org/lang_insert.html进行插入,并使用https://www.sqlite.org/lang_select.html进行选择.在值(...)之后不能添加where子句. (3认同)