gpt4 book ai didi

python - 如果值已经在表中,如何将值插入表或更新它

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:46 25 4
gpt4 key购买 nike

我正在建立一个包含两个字段的数据库,即 user_id 和计数,如果表中已存在具有相同 user_id 的记录,我希望能够插入这对值或将计数递增 1。

我已经尝试过很多解决方案,例如 INSERT INTO ... ON DUPLICATE KEY UPDATE ...,但它们对我不起作用。它抛出一个错误:

sqlite3.OperationalError: near "ON": syntax error

我在 python 3.7 上运行 SQLite 3.21.0。

这是我的代码:

def add_warning(id):
sql = f"""INSERT INTO warnings (user_id, count) VALUES({id}, 1) ON CONFLICT(user_id) DO UPDATE SET count=count+1"""
cursor.execute(sql)

我希望在执行查询时更新计数值,但当我尝试这样做时会抛出错误。

最佳答案

假设user_id 是您可以使用的表的主键 (INSERT OR) REPLACE :

sql = "REPLACE INTO warnings (user_id, count) VALUES(?, COALESCE((SELECT count + 1 FROM warnings WHERE user_id = ?), 1))"
cursor.execute(sql1, (id, id,))

参见 demo .

关于python - 如果值已经在表中,如何将值插入表或更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com