我正在阅读有关交易如何在python MySQLdb
中运行的内容。在this tutorial中,它说:
在Python DB API中,我们不会调用BEGIN语句来启动 交易。创建光标时启动事务。
以下一行:
cur = con.cursor()
隐式启动一个事务。它还说:
我们必须使用commit()或rollback()结束事务 方法
我是否理解正确,MySQLdb
使用事务总是并且无法关闭此行为?强制用户将所有查询括在事务中似乎有点奇怪。如果是这样 - 有什么解释为什么会这样?
答案 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在中途失败,它们可能会遇到问题!