【发布时间】:2019-04-14 04:44:20
【问题描述】:
我是 python 和 SQL 的初学者。我的 SQL 命令有一个 upsert 子句,但我的 Python SQLite standard library 在不支持 upsert 语法的 sqlite v3.21 上运行。 upsert 子句仅适用于 SQLite v3.24 及更高版本。
# UPSERT syntax established by PostSQL, Inputs data into SQLite database
c1.executemany("INSERT INTO result(_time,src_ip) VALUES(?,?) ON "
"CONFLICT(src_ip) DO UPDATE SET Count=Count+1;", to_db)
我尝试了pip install --upgrade pysqlite、pip install --upgrade sqlite3 和许多其他命令,但它没有更新我的 SQLite 库。 Python 3.7.1 似乎不支持 SQLite v3.24 及更高版本。
有没有办法将 Python3 SQLite 库更新到 v3.24?有没有办法可以下载 sqlite v3.24+ 包以将其导入我的脚本?
谢谢!
【问题讨论】:
-
这不是一个完整的解决方案,因为它不能解决现有 Python 的问题,但是当我今天更新 Python 时,Anaconda 的 sqlite 包是 3.26.0,这意味着我可以利用它.修改现有的 Python 可能需要一些管道。也许有一个 Conda-forge 或类似的配方可以提供帮助?
-
哦! There's already an answer to this. 适用于 Python 3.5,但可能适用于 Python 3.6+。
标签: python-3.x sqlite upsert