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