Python中的MySQL批量更新语句

时间:2011-05-31 05:10:53

标签: python mysql bulkinsert

我想知道如何使用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语句无关。

2 个答案:

答案 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更新字段。那解决了我的问题