我有一个包含 2 个表的数据库,如下所示:
cg_resp
id | name | email
1 | George | [email protected]
id
列是primary_key
,autoincremented
and name
is unique
and
equip_info
id | description | cg_resp_id
1 | Caliper | 1
在申请表中,我有 2 个编辑框,名为edit_resp_name
and edit_resp_email
如果用户插入一个新的负责名称,例如John
与电子邮件[email protected]
然后在保存表格期间我想insert
一个新的责任者cg_resp
表,获取最后插入的id
并将其更新为equip_info.cg_resp_id
.
如果用户保留该名称George
但它正在更新电子邮件[email protected]
那么我想update
the id
= 1 来自cg_resp
以及新的电子邮件地址和其余地址(equip_info.cg_resp_id
and cg_resp.id
)保持不变。
我想保留原始参考cg_resp_id
从表equip_info
如果负责人的名字相同,那么就需要避免删除并插入新的情况。
如何一劳永逸地做到这一点Sqlitesql 序列?
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 ...")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)