将MySQL查询转换为SQLite查询

时间:2017-06-10 20:42:20

标签: mysql sql sqlite code-conversion

我有以下查询:

INSERT INTO Test (Test1, Test2, Test3, Test4) VALUES (5, 5, 5, 55) ON duplicate KEY UPDATE Test1 = VALUES(5);

这在MySQL上工作正常但我在SQLite上遇到语法错误,我的问题是:(1)如何将此查询转换为与SQLite一起使用,同时提供它的功能(2)如何更新多个字段在重复的情况下?

1 个答案:

答案 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)')