我正在尝试使用MySQL Connector / Python访问某些记录,但无法理解如何使用start_transaction()
。
如果有人能在需要的情况下阐明用例,我会很棒。
更新:仔细阅读docs后,start_transaction()
方法仅在autocommit=True
时才需要。真的吗?我对此仍然感到困惑,文档没有提供任何示例。
答案 0 :(得分:0)
是的,启用自动提交功能后,通常使用connection.start_transaction()
方法来启动事务。
由于MySQL Connector / Python符合Python DB API,因此默认情况下自动提交是禁用的,并且第一个SQL语句将隐式开始事务。您必须致电connection.commit
提交交易。
答案 1 :(得分:0)
在 MySQL 中,有 3 种进行事务的方式:
明确。优先使用多个语句。 (注意:autocommit
Mul 的值不相关。)
START TRANSACTION;
SQL statement(s)
COMMIT;
单个事务中的多个语句。这很容易出错,因为您可能会忘记发出 COMMIT:
((autocommit is OFF))
SQL statement(s)
COMMIT;
每条语句都是其自己的事务。 (对于不需要 ACID 的临时使用很有用。)
((autocommit is ON))
SQL statement
SQL statement
SQL statement
((no COMMIT))
我不知道这些映射到 python,但它似乎不同意 Eugene 的答案和 Cody 的评论。