我可以用Python一口气更新sql表行吗?

时间:2018-08-01 20:23:10

标签: sql python-3.x sqlite

我有两个数据库。一个是我在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)

谢谢。

0 个答案:

没有答案