Python中用MySqlDb执行sql语句无效的解决过程

写了一个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()

 

 

posted @ 2014-06-12 21:24  任者  阅读(1374)  评论(0编辑  收藏  举报