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