我想在Python中迭代一堆mySQL行,在处理完每一行后,改变它:
cursor.execute("SELECT someNonUniqueColumn,hasBeenProccessed
FROM myTable WHERE hasBeenProcessed = 0")
for row in cursor:
# use someNonUniqueColumn for something...
...
# set "hasBeenProccessed" to 1
我想避免丑陋: - 每次处理记录时都必须执行另一个SQL查询,或者 - 当我处理它们时,用一行ID填充数组 (这两者都需要我在表中添加一个唯一的密钥)
那么,有没有办法“随时检查这些”?
答案 0 :(得分:1)
不,没有办法改变行速。这有很多原因,其中之一是查询返回的值可能无法更新:思考计数,总和和其他聚合函数。
如果只进行非常少量的数据库交互,保存ID并发出复合update
语句似乎是最好的。
如果您在程序中发出超过1-2个查询,请帮个忙,学习SQLAlchemy或Django ORM。两者都不是完全透明的,但要么节省大量的时间和调试痛苦。
答案 1 :(得分:0)
执行更改/处理后,为什么不运行查询
UPDATE myTable SET hasBeenProcessed = 1 WHERE hasBeenProcessed = 0
如果可以的话当然可以:)