此方法會開始一個交易。它接受引數,指示是否使用一致的快照、要使用的交易隔離層級和交易存取模式
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 中新增。