我有两个数据库。一个是我在SQLite中的主数据库,另一个是一个不时更新的远程数据库。我想读取远程数据库并使用更改更新我的主数据库。由于我不知道哪些列已更改,因此当存在差异时,我只想更新整个行。
Python中是否有一种方法(使用SQLite3)一次更新整个行?
这是我的数据库示例:
.headers on
select * from asset;
id|serial|customer_id|upgrade|
1|J0016209|C0010|false
2|J001631G|C0313|false
3|J001631Z|C001Y|false
4|J001632X|C001Y|false
5|J0016330|C001D|false
6|J0016331|C002Y|false
7|J00163D1|C005Y|false
8|J00163F9|C002Y|false
更新为:
new_data = [
{'id':'3', 'serial':'J001631Z', 'customer_id':'C001Y', 'upgrade':'true' }
{'id':'4', 'serial':'J001632X', 'customer_id':'C001A', 'upgrade':'false'}
{'id':'7', 'serial':'J00163D1', 'customer_id':'C005Y', 'upgrade':'true' }
{'id':'8', 'serial':'J0016119', 'customer_id':'C002Y', 'upgrade':'false'}
]
我想要这样的东西:
for row in new_data:
val_str = build_value_string(row) # How do I build this?
cmd_str = "UPDATE {0} VALUES {1}".format(table_name, val_str)
my_db.cur.execute(cmd_str)
谢谢。