我有以下代码,可以批量更新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数据库中,这些记录必须通过运行相同的脚本来更新。该代码在linux环境下以python脚本形式运行。