您当前的位置:首页 > 计算机 > 编程开发 > Python

Python 的 MySQLdb 模块的 autocommit

时间:10-26来源:作者:点击数:

最初在使用python读写数据库的时候,发现select语句可以读取到数据,insert语句执行后,数据库中却没有数据。将sql语句在mysql命令行直接执行是完全没有问题的,为什么使用MySQLdb执行insert语句会没有数据呢?

看起来像是没有提交,立刻想到了mysql的autocommit,是不是没有提交事务?想到后立刻进行了验证,在执行insert语句后,又加了一行程序提交事务:connection.commit()。果然,insert语句生效了,数据库中有了数据。

为了进一步证实MySQLdb模块会将autocommit功能关闭,看了mysql的日志,发现有set autocommit=0,进一步证实了,MySQLdb模块默认会关闭autocommit功能。如果不希望默认关闭,解决办法有几种:

1、显示执行SQL语句"COMMIT;" 

2、使用connection的commit方法:connection.commit() 

3、设置自动提交:connection.autocommit(1) 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门