我想知道如何使用MySQL和Python进行批量更新。我的要求就像
for x in range(0,100):
NNN = some calculation
ABC = some calculation
query = update XXX set value = NNN, name = ABC where id = x
con.execute(query)
这里的问题是它正在执行100个DB查询并使更新过程变慢。是否可以进行一次数据库调用?我知道MySQL上的批量插入语法,但它似乎与update
语句无关。
答案 0 :(得分:0)
根据MySQL update manual,您可以
UPDATE tableX SET NNN = calculation,
ABC = (SELECT whatever FROM whatevertable WHERE condition)
WHERE x >=0 AND x <=100
答案 1 :(得分:0)
我同意我们可以对查询进行计算。但改变和维护并不灵活。寻找MYSQL存储过程是一个不错的选择。但是我已经使用以下步骤在python脚本中解决了它。 1.创建一个临时表来保存列A,B和id。 Python&amp; MySQL支持批量插入(参见petefreitag.com/item/379.cfm)。 2.发出一个简单的更新语句,在where where条件下使用id更新字段。那解决了我的问题