【发布时间】:2018-07-02 00:36:10
【问题描述】:
我有下面的代码可以批量更新 mysql 数据库。
count = pd.read_sql_query("SELECT count(*) FROM table",con=db)
count = count.iat[0,0]
batchsize = 1000
for offset in range(0,count,batchsize):
df = pd.read_sql(('SELECT id,col2,col3 FROM table LIMIT %s OFFSET %s'
% (batchsize,offset)), con=db)
## code ##
cursor = db.cursor()
cursor.executemany("UPDATE table SET col2=%s, col3=%s WHERE id=%s",d)
db.commit()
db.close()
更新后,如果新记录被添加到 mysql 数据库中,则必须通过运行相同的脚本来更新这些记录。该代码作为 python 脚本在 linux 环境中运行。
【问题讨论】:
-
您的问题不清楚,您是否希望在添加新行后立即发生一些事情? IE。一个触发器。为什么一添加就需要更新,添加过程肯定也要调整记录。
-
没有@AndyG,不是在添加新行后立即。但是在添加了一些新记录之后,如果我们运行脚本,则应该只更新那些新记录。