文件首頁
MySQL Connector/Python 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 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 中新增。