我正在尝试使用ON CONFLICT,但出现错误“附近“ ON”:语法错误”
根据其他页面,这是一个相当新的东西,我应该更新我的sqlite版本,但是我不知道如何,我当前的sqlite版本是3.21.0
这是我要使用的代码:
cdb.execute("INSERT INTO httpproxies (proxy, first , last , timesalive , timesdead ) VALUES (?, ? , ?, ?, ?) ON CONFLICT(proxy) DO UPDATE SET last = ?,timesalive = timesalive + 1",
(proxy,t1,t1,1,0,t1))
conndb.commit()
有人可以向我解释如何升级我的sqlite版本或其他代码吗?我已经尝试过pip install --upgrade pysqlite3了,但没有成功,它保持了与以前相同的版本
答案 0 :(得分:1)
仅从SQLite3 3.24.0版本开始才支持该语法。您没有说明正在运行的平台,因此我无法为您提供更新SQLite3版本的最佳方法的建议。但是,您可以使用其他SQL来实现您的目标。下面是一些伪代码来说明原理:
execute("INSERT INTO httpproxies (proxy, ...)")
if conflict-error
execute("UPDATE httpproxies SET ... WHERE proxy=?")
end