文档首页
MySQL Connector/Python 开发人员指南
相关文档 下载本手册
PDF (US Ltr) - 0.7Mb
PDF (A4) - 0.7Mb


MySQL Connector/Python 开发人员指南  /  ...  /  MySQLConnection.start_transaction() 方法

10.2.34 MySQLConnection.start_transaction() 方法

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

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

默认的 consistent_snapshot 值为 False。如果该值为 True,Connector/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 和 ROLLBACK 语句 中对 START TRANSACTION 语句的描述。如果服务器版本早于 MySQL 5.6.5,则不支持设置访问模式,Connector/Python 会引发 ValueError

如果在当前正在进行事务时调用 start_transaction(),则会引发 ProgrammingError。这与在事务正在进行时执行 START TRANSACTION SQL 语句不同;该语句会隐式提交当前事务。

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

start_transaction() 添加于 MySQL Connector/Python 1.1.0 中。readonly 参数添加于 Connector/Python 1.1.5 中。