Documentation Home

10.2.34 MySQLConnection.start_transaction()方法

此方法启动事务。它接受指示是否使用一致快照、使用哪个事务隔离级别以及事务访问模式的参数:

cnx.start_transaction(consistent_snapshot=bool,
                      isolation_level=level,
                      readonly=access_mode)

默认consistent_snapshot值为 False。如果值为 True,连接器/Python 会发送WITH CONSISTENT SNAPSHOT语句。对于该选项不适用的隔离级别,MySQL 会忽略它。

默认isolation_level值为 None,允许的值为'READ UNCOMMITTED''READ COMMITTED''REPEATABLE READ''SERIALIZABLE'。如果 isolation_level值为 None,则不发送任何隔离级别,因此应用默认级别。

readonly参数可以是 在模式 下True启动事务 READ ONLY或在模式下False启动事务READ WRITE。如果 readonly省略,则使用服务器的默认访问模式。事务访问方式详见START TRANSACTION, COMMIT, and ROLLBACK Statements 语句START TRANSACTION 说明。如果服务器早于 MySQL 5.6.5,它不支持设置访问模式,Connector/Python 会引发一个. ValueError

调用start_transaction()会引发一个 ProgrammingErrorif 调用,而事务当前正在进行中。这不同于START TRANSACTION在事务处理过程中执行 SQL 语句;该语句隐式提交当前事务。

要确定连接的事务是否处于活动状态,请使用 in_transaction 属性。

start_transaction()在 MySQL 连接器/Python 1.1.0 中添加。该readonly参数是在 Connector/Python 1.1.5 中添加的。