This method starts a transaction. It accepts arguments indicating whether to use a consistent snapshot, which transaction isolation level to use, and the transaction access mode:
cnx.start_transaction(consistent_snapshot=bool,
isolation_level=level,
readonly=access_mode)
The default consistent_snapshot
value is
False
. If the value is
True
, Connector/Python sends WITH CONSISTENT
SNAPSHOT
with the statement. MySQL ignores this for
isolation levels for which that option does not apply.
The default isolation_level
value is
None
, and permitted values are 'READ
UNCOMMITTED'
, 'READ COMMITTED'
,
'REPEATABLE READ'
, and
'SERIALIZABLE'
. If the
isolation_level
value is
None
, no isolation level is sent, so the
default level applies.
The readonly
argument can be
True
to start the transaction in
READ ONLY
mode or False
to
start it in READ WRITE
mode. If
readonly
is omitted, the server's default
access mode is used. For details about transaction access mode,
see the description for the START TRANSACTION
statement at START TRANSACTION, COMMIT, and ROLLBACK Statements. If the server is older
than MySQL 5.6.5, it does not support setting the access mode
and Connector/Python raises a ValueError
.
Invoking start_transaction()
raises a
ProgrammingError
if invoked while a
transaction is currently in progress. This differs from
executing a START
TRANSACTION
SQL statement while a transaction is in
progress; the statement implicitly commits the current
transaction.
To determine whether a transaction is active for the connection, use the in_transaction property.
start_transaction()
was added in MySQL Connector/Python
1.1.0. The readonly
argument was added in
Connector/Python 1.1.5.