没有事务的python-mysqldb

时间:2014-06-09 13:24:02

标签: python mysql transactions mysql-python

我正在阅读有关交易如何在python MySQLdb中运行的内容。在this tutorial中,它说:

  

在Python DB API中,我们不会调用BEGIN语句来启动   交易。创建光标时启动事务。

以下一行:

cur = con.cursor()

隐式启动一个事务。它还说:

  

我们必须使用commit()或rollback()结束事务   方法

我是否理解正确,MySQLdb使用事务总是并且无法关闭此行为?强制用户将所有查询括在事务中似乎有点奇怪。如果是这样 - 有什么解释为什么会这样?

1 个答案:

答案 0 :(得分:1)

我不是这方面的专家,但我认为您在这里寻找的功能是自动提交。 这会自动提交您的命令。因此,您应该可以跳过“开始”状态。语句。

这是一个页面: http://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html

启动python MySQLdb实例时进行设置:

conn=MySQLdb.connect(host='blah', autocommit=True)

然后,您应该建立一个不用担心交易的连接。

某些存储引擎不使用交易,因此如果您使用交易,则无需担心此细节: en.wikipedia.org/wiki/Comparison_of_MySQL_database_engines

但是,如果insert \ update在中途失败,它们可能会遇到问题!