14.2.10.2. InnoDB
and AUTOCOMMIT
In InnoDB
, all user activity occurs inside a
transaction. If the autocommit mode is enabled, each SQL
statement forms a single transaction on its own. By default,
MySQL starts new connections with autocommit enabled.
If the autocommit mode is switched off with SET
AUTOCOMMIT = 0
, then we can consider that a user
always has a transaction open. A SQL COMMIT
or ROLLBACK
statement ends the current
transaction and a new one starts. A COMMIT
means that the changes made in the current transaction are made
permanent and become visible to other users. A
ROLLBACK
statement, on the other hand,
cancels all modifications made by the current transaction. Both
statements release all InnoDB
locks that were
set during the current transaction.
If the connection has autocommit enabled, the user can still
perform a multiple-statement transaction by starting it with an
explicit START TRANSACTION
or
BEGIN
statement and ending it with
COMMIT
or ROLLBACK
.