Python2.7+mysqlDB+mysql5.5.x更新操作无法正常刷新到服务器的问题
2012-04-10 16:00
387 查看
开始在使用python和mysqldb操作mysql5.0.x系列的数据库服务器的时候,只要数据库服务器端把autocommit属性设置为1的话,在使用mysqldb创建连接的时候就把这条连接默认为开启事务模式了,把每条更新sql语句当做了一条事务,可以完全正确地使用代码,插入---查询,然后使用客户端查看服务器,确实更新到了数据库服务器中;
但是当使用mysql5.5.x的时候,使用代码就默认是关闭了事务模式,如果不显示设置autocommit为1或者显示使用commit/rollback提交则不会正确更新到服务器中。使用代码插入---查询没有问题,但是使用另一条连接连接服务器查看,没有更新到服务器中。
这样看来,在mysql5.5.x版本服务器中,将mysqldb创建的连接默认为关闭事务模式。这样或许更科学,因为这样的话就可以把这条连接做得和使用客户端连接更相似了(尽管客户端本身也是一条数据库连接而已)。可以把使用客户端和使用代码几乎完全等同。使用代码设置autocommit属性就相当于使用客户端将autocommit的variable_value设置为ON。同样使用starttransaction/commit/rollback语句效果是等价的。只是使用代码的时候如果想设置为开启事务模式的话,必须在每次创建连接的时候设置autocommit属性,否则就是默认关闭事务模式。
但是当使用mysql5.5.x的时候,使用代码就默认是关闭了事务模式,如果不显示设置autocommit为1或者显示使用commit/rollback提交则不会正确更新到服务器中。使用代码插入---查询没有问题,但是使用另一条连接连接服务器查看,没有更新到服务器中。
这样看来,在mysql5.5.x版本服务器中,将mysqldb创建的连接默认为关闭事务模式。这样或许更科学,因为这样的话就可以把这条连接做得和使用客户端连接更相似了(尽管客户端本身也是一条数据库连接而已)。可以把使用客户端和使用代码几乎完全等同。使用代码设置autocommit属性就相当于使用客户端将autocommit的variable_value设置为ON。同样使用starttransaction/commit/rollback语句效果是等价的。只是使用代码的时候如果想设置为开启事务模式的话,必须在每次创建连接的时候设置autocommit属性,否则就是默认关闭事务模式。
相关文章推荐
- python2.7:dic2json 解决中文无法正常显示问题
- python2.7;解决中文无法正常显示问题
- 提交代码到svn时服务器重启导致svn无法更新问题解决办法
- 关于SubSonic3.0插件使用实体进行更新操作时(执行T.Update()或T.Save()),某些列无法进行修改操作的问题处理
- Python2.7 IDLE无法启动等问题
- python的 MySQLdb无法connect的问题
- SERVER2008IIS服务器不能正常使用(由于扩展配置问题而无法提供您请求的页面,如果该页面是脚本...)
- 【转载】----web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- 解决 CentOS 6.4 升级 Python2.7 后 Ibus 输入法无法使用问题
- “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法
- Python对excel写入数据操作实例代码(改进无法合并最后一组数据的问题)
- 完美解决Python 2.7不能正常使用pip install的问题
- 解决 CentOS 6.4 升级 Python2.7 后 Ibus 输入法无法使用问题
- MySQLdb-python无法设置字符集的问题
- 解决 CentOS 6.4 升级 Python2.7 后 Ibus 输入法无法使用问题
- Python - MySQLdb.connect连接lampp中mysql服务器问题的解决
- ionic $http 无法正常访问外部web服务器的问题
- 解决集群启动正常,但无法操作集群的问题
- Python socket 通信,同一台电脑可以正常访问而另一台电脑无法访问问题