[英]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.