gpt4 book ai didi

没有事务的python-mysqldb

转载 作者:行者123 更新时间:2023-11-29 00:12:59 25 4
gpt4 key购买 nike

我正在阅读有关事务如何在 python 的 MySQLdb 中工作的信息。在 this tutorial ,它说:

In Python DB API, we do not call the BEGIN statement to start a transaction. A transaction is started when the cursor is created.

所以下面一行:

cur = con.cursor()

隐式启动事务。它还说:

We must end a transaction with either a commit() or a rollback() method.

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

最佳答案

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

这是它的一个页面: 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

但是,如果您的插入\更新中途失败,它们可能会遇到问题!

关于没有事务的python-mysqldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com