繁体   English   中英

用相同的 ID 更新 sqlite3 中的多行

[英]Update multiple rows in sqlite3 with same ID

我想更新并替换具有相同 ID 的表的多行。 raw_table 看起来像这样:

mem_id       + brand         +      type
A              xyz                  123
A              qwe                  423
A              qwe                  210
A              zxc                  145
B              xyz                  789
B              qwe                  564
C              qwe                  124
C              zxc                  326

我想更新 cum 用如下所示的元组列表的值替换特定 mem_id 'A'- 的所有行:

lists = [('A', 'asd', '435'), ('A', 'wky', '420'), ('A', 'jko', '311')]

我已经实现了以下代码,但它引发了一个 sqlite3 操作错误:

conn = sqlite3.connect('database/u_data.vita')
mycursor = conn.cursor()
mycursor.executemany("UPDATE raw_table SET(brand=?, type=?) WHERE mem_id=?",lists,A)
conn.commit()
conn.close()

我希望 output 看起来像这样:

mem_id       + brand         +      type
A              asd                  435
A              wky                  420
A              jko                  311
B              xyz                  789
B              qwe                  564
C              qwe                  124
C              zxc                  326

谢谢。 任何见解都会有所帮助!

由于表的现有行与新行之间没有1对1的关系,因此不需要更新表,只需删除mem_id = 'A'的现有行并从列表中插入新行:

lists = [('A', 'asd', '435'), ('A', 'wky', '420'), ('A', 'jko', '311')]
conn = sqlite3.connect('database/u_data.vita')
mycursor = conn.cursor()
mycursor.execute("DELETE FROM raw_table WHERE mem_id = 'A'")
mycursor.executemany("INSERT INTO raw_table(mem_id, brand, type) VALUES (?, ?, ?)", lists)
conn.commit()
conn.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM