次の各ステートメント(そしてそれらの同義語)は、まるでステートメントを実行する前に COMMIT を行ったかのように、暗黙にトランザクションを終了します。
ALTER FUNCTION, ALTER PROCEDURE, ALTER TABLE, BEGIN, CREATE DATABASE, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, DROP DATABASE, DROP FUNCTION, DROP INDEX, DROP PROCEDURE, DROP TABLE, LOAD DATA INFILE LOCK TABLES, RENAME TABLE, SET AUTOCOMMIT=1, START TRANSACTION, TRUNCATE TABLE, UNLOCK TABLES.
MySQL 5.1.3 から、ALTER VIEW、CREATE TRIGGER、CREATE USER、CREATE VIEW、DROP TRIGGER、DROP USER、DROP VIEW、そして RENAME USER ステートメントは暗黙的なコミットを引き起こすようになりました。
UNLOCK TABLES は、もしテーブルが現在 LOCK TABLES でロックされていたらトランザクションを行います。これは、FLUSH TABLES WITH READ LOCK ステートメントがテーブル レベル ロックを取得しない為、これに続く UNLOCK TABLES に対しては行われません。
InnoDB 内の CREATE TABLE ステートメントは単一トランザクションとして生成されます。これは、ユーザからの ROLLBACK はトランザクションの最中にユーザが作成した CREATE TABLE ステートメントを解除しないという意味です。
CREATE TABLE と DROP TABLE は、もし TEMPORARY キーワードが利用されたらトランザクションを実行しません。(これは、コミットを引き起こさない CREATE INDEX のようなテンポラリ テーブルへのその他の操作には当てはまりません。)
MySQL 5.1.15 から、CREATE TABLE ... SELECT はステートメントが実行される前後に暗黙的なコミットを引き起こすようになりました。しかし、CREATE TEMPORARY TABLE ... SELECT には何のコミットも起きません。
MySQL 5.1.11 以前では、LOAD DATA INFILE は全てのストレージ エンジンに対して暗黙的なコミットを引き起こしました。MySQL 5.1.12 からは、 NDB ストレージエンジンを利用しているテーブルに対してだけ暗黙的なコミットを引き起こすようになりました。更なる情報については、バグ #11151を参照してください。
MySQL 5.1.15 以降では、非テンポラリ テーブルを作成している時 CREATE TABLE ... SELECT ステートメントは暗黙的なコミットを含みます。これは、ロールバック後にマスタ上でテーブルを作成する事ができてもバイナリログ内での記録に失敗する為スレーブには複製されない、という複製の最中での発行を防ぐ為の物です。更なる情報については、バグ
#22865を参照してください。
トランザクションはネスト化されません。これは、START TRANSACTION ステートメントかその同義語の1つを発行する時点でのトランザクションに対して実行される、暗黙的な COMMIT の結果です。
トランザクションが ACTIVE 状態の間は、暗黙的な作業を引き起こすステートメントは XA トランザクションでは利用する事はできません。