MySQL Connector / Python:如何使用start_transaction()方法?

时间:2018-10-09 14:18:12

标签: python mysql python-3.x mysql-connector-python

我正在尝试使用MySQL Connector / Python访问某些记录,但无法理解如何使用start_transaction()

如果有人能在需要的情况下阐明用例,我会很棒。

更新:仔细阅读docs后,start_transaction()方法仅在autocommit=True时才需要。真的吗?我对此仍然感到困惑,文档没有提供任何示例。

2 个答案:

答案 0 :(得分:0)

是的,启用自动提交功能后,通常使用connection.start_transaction()方法来启动事务。

由于MySQL Connector / Python符合Python DB API,因此默认情况下自动提交是禁用的,并且第一个SQL语句将隐式开始事务。您必须致电connection.commit提交交易。

答案 1 :(得分:0)

在 MySQL 中,有 3 种进行事务的方式:

  1. 明确。优先使用多个语句。 (注意:autocommitMul 的值不相关。)

    START TRANSACTION;
    SQL statement(s)
    COMMIT;
    
  2. 单个事务中的多个语句。这很容易出错,因为您可能会忘记发出 COMMIT:

    ((autocommit is OFF))
    SQL statement(s)
    COMMIT;
    
  3. 每条语句都是其自己的事务。 (对于不需要 ACID 的临时使用很有用。)

    ((autocommit is ON))
    SQL statement
    SQL statement
    SQL statement
    ((no COMMIT))       
    

我不知道这些映射到 python,但它似乎不同意 Eugene 的答案和 Cody 的评论。