gpt4 book ai didi

Sqlite:如果不存在则插入,如果存在则更新

转载 作者:行者123 更新时间:2023-12-03 15:57:41 25 4
gpt4 key购买 nike

我有一个包含 2 个表的数据库:

cg_resp
id | name | email
1 | George | george@yahoo.com

id 列是 primary_keyautoincremented 并且 nameunique

equip_info
id | description | cg_resp_id
1 | Caliper | 1

在申请表中,我有 2 个名为 edit_resp_nameedit_resp_email 的编辑框

如果用户在电子邮件 john@yahoo.com 中插入一个新的负责人姓名,例如 John,那么在保存表单期间我想插入 一个新的负责人到 cg_resp 表中,获取最后插入的 id 并将其更新为 equip_info.cg_resp_id

如果用户保留名称 George 但它正在更新像 george01@gmail.com 这样的电子邮件,那么我想更新 id = 1 来自 cg_resp 新的电子邮件地址和其余部分(equip_info.cg_resp_idcg_resp.id ) 保持不变。

如果负责人的姓名相同,我想保留表 equip_infocg_resp_id 的原始引用,因此有必要避免删除和插入这样的情况新的。

如何一次完成 Sqlite sql序列?

最佳答案

SQLite 没有不会删除现有行的内置机制。

最简单的方法是将逻辑放入您的应用程序中:

cursor = db.execute("SELECT ...")
if cursor.empty:
db.execute("INSERT ...")
else:
db.execute("UPDATE ...")

如果您的语言允许读取受影响的行数,则可以使用两个 SQL 命令执行此操作:

db.execute("UPDATE ...")
if db.rowcount == 0:
db.execute("INSERT ...")

关于Sqlite:如果不存在则插入,如果存在则更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28261090/

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