写了一个Linux下用crontab每天自动执行的python脚本,要执行一句修改数据表的sql,大致如下:
sql = "UPDATE table SET depart='bbb' WHERE depart='aaa' AND dataname LIKE 'xxx_%'"conn = MySQLdb.connect(host="localhost", user="root", passwd="baidu_cs", db="dataview", charset="utf 8")cur = conn.cursor()cur.execute(sql)
运行没问题,但数据库没有丝毫变化。
百度了一圈,原来少了这么一句话:
conn.commit()
原因如下:
支持事务的数据库引擎需要commit(可能自动或手动),不支持事务的引擎不需要commit。
怎么查看数据库引擎?
mysql> show engines;
怎么看commit是自动还是手动的?
mysql> show variables like '%autocommit%';
我查了下,原来我的commit不是自动的,所以需要手动加上那句commit()