このセクションに示されているステートメント(およびそのすべてのシノニム)は,ユーザーがこのステートメントを実行する前に提交
を実行したかのように,現在のセッション内でアクティブなすべてのトランザクションを暗黙的に終了します。MySQL 5.5.3の時点では,これらのステートメントのほとんどが,実行後に暗黙的なコミットも発生させます。詳細は,このセクションの最後を参照してください。
デタベスオブジェクトを定義または変更するデタ定義言語(ddl)ステトメント。
Alter database…升级数据目录名
、改变事件
、改变的过程
、改变服务器
、ALTER TABLE
、改变观点
、创建数据库
、创建事件
、创建索引
、创建过程
、创建服务器
、创建表
、创建触发器
、创建视图
、删除数据库
、删除事件
、指数下降
、下降过程
、减少服务器
、删除表
、下降触发
、删除视图
、重命名表
、截断表
。改变函数
、创建函数
,および删除函数
もまた,ストアドファンクション(ただし,UDFを除く)で使用された場合は暗黙的なコミットを発生させます。(改变函数
は,ストアドファンクションでのみ使用できます。)创建表
および删除表
ステ,トメントは,临时
キ,ワ,ドが使用されている場合はトランザクションをコミットしません。(これは,コミットを発生させるALTER TABLE
や创建索引
などの,一時テーブルに対するその他の操作には適用されません)ただし,暗黙的なコミットは発生しませんが,ステートメントのロールバックもできません。まり,このようなステ,トメントを使用すると,トランザクションのアトミック性が侵害されます。たとえば,创建临时表
を使用したあとにトランザクションをロ,ルバックしても,そのテ,ブルは存在し続けます。InnoDB
での创建表
ステトメントは,1のトランザクションとして処理されます。つまり,ユーザーが回滚
を発行しても,ユ,ザ,がそのトランザクション中に実行した创建表
ステ,トメントは元に戻されません。创建表…选择
は,一時テーブル以外のテーブルを作成している場合,そのステートメントが実行される前後に暗黙的なコミットを発生させます。(创建临时表…选择
に対してコミットは発生しません)これは,ロールバック後にマスター上でテーブルを作成できたが,バイナリログへの記録に失敗したため,スレーブにはレプリケートされないというレプリケーション中の問題を回避するために行われます。詳細は,Bug #22865を参照してください。mysql
デ,タベ,ス内のテ,ブルを暗黙的に使用または変更するステ,トメント。创建用户
、减少用户
、格兰特
、重命名用户
、撤销
、设置密码
。トランザクション制御およびロックステ,トメント。
开始
、锁表
、SET autocommit = 1
(この値がまだ1でない場合)开始事务
、打开表
。打开表
は,非トランザクションテ,ブルロックを取得するために現在锁表
でロックされているテ,ブルがある場合にのみ,トランザクションをコミットします。用读锁刷新表
はテ,ブルレベルのロックを取得しないため,このステ,トメントに続く打开表
に対してコミットは発生しません。トランザクションをネストすることはできません。これは,
开始事务
ステートメントまたはそのシノニムのいずれかを発行するときに,現在のすべてのトランザクションに対して実行される暗黙的なコミットの結果です。Xaトランザクションが
活跃的
状態にある間に,暗黙的なコミットを発生させるステートメントをそのトランザクションで使用することはできません。开始
ステ,トメントは,开始……结束
複合ステ,トメントを開始する开始
キ,ワ,ドの使用とは異なります。後者は暗黙的なコミットを発生させません。セクション13.6.1“开始…结束複合ステ,トメント構文”を参照してください。デ,タロ,ドステ,トメント。
加载数据文件
。加载数据文件
は,NDB
ストレ,ジエンジンを使用しているテ,ブルに対してのみ暗黙的なコミットを発生させます。詳細は,Bug #11151を参照してください。管理ステ,トメント。
分析表
、缓存索引
、检查表
、将索引载入缓存
、优化表
、修理表
。レプリケ,ション制御ステ,トメント。MySQL 5.6.7から:
开始的奴隶
、停止奴隶
、重置的奴隶
、将master更改为
。(Bug #13858841)
MySQL 5.5.3の時点では,以前は実行前に暗黙的なコミットを発生させたステートメントのほとんどが,実行後にも発生させます。その目的は,このような各ステートメントはいずれにしてもロールバックできないため,それを独自の特殊なトランザクションで処理することにあります。次のリストは,この変更に関連する追加の詳細を示しています。
以前は特殊なケ,スであった
创建表
バリアント(InnoDB
テ,ブルに対する创建表
や创建表…选择
)は,创建表
が一様に実行の前後に暗黙的なコミットを発生させるため,現在では特殊ではなくなっています。冲洗
および重置
ステ,トメントは暗黙的なコミットを発生させます。トランザクション制御およびロックステ,トメントは,以前と同様に動作します。