我有以下查询:
INSERT INTO Test (Test1, Test2, Test3, Test4) VALUES (5, 5, 5, 55) ON duplicate KEY UPDATE Test1 = VALUES(5);
这在MySQL上工作正常但我在SQLite上遇到语法错误,我的问题是:(1)如何将此查询转换为与SQLite一起使用,同时提供它的功能(2)如何更新多个字段在重复的情况下?
答案 0 :(得分:0)
有可能构造一个复杂的INSERT OR REPLACE查询,但这总是会删除旧行,这通常不是你想要的。
无论如何,SQLite是一个嵌入式数据库,旨在与“真正的”编程语言一起使用。只需使用两个单独的陈述:
db.execute('UPDATE Test SET Test1 = 5 WHERE ID = 42')
if db.rowcount == 0:
db.execute('INSERT INTO Test(ID, Test1) VALUES (42, 5)')