The following commands implicitly end a transaction (as if you had done a COMMIT before executing the command):
| Command | Command | Command |
| ALTER TABLE | BEGIN | CREATE INDEX |
| DROP DATABASE | DROP INDEX | DROP TABLE |
| LOAD MASTER DATA | LOCK TABLES | RENAME TABLE |
| SET AUTOCOMMIT=1 | START TRANSACTION | TRUNCATE |
UNLOCK TABLES also ends a transaction if any tables currently are locked. Prior to MySQL 4.0.13, CREATE TABLE ends a transaction if the binary update log is enabled.
Transactions cannot be nested. This is a consequence of the implicit COMMIT performed for any current transaction when you issue a START TRANSACTION statement or one of its synonyms.