10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 26.8 mb
PDF (A4)- 26.8 mb


13.3.3暗黙的なコミットを発生させるステ,トメント

このセクションに示されているステートメント(およびそのすべてのシノニム)は,ユーザーがこのステートメントを実行する前に提交を実行したかのように,現在のセッション内でアクティブなすべてのトランザクションを暗黙的に終了します。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テ,ブルに対する创建表创建表…选择)は,创建表が一様に実行の前後に暗黙的なコミットを発生させるため,現在では特殊ではなくなっています。

  • 冲洗および重置ステ,トメントは暗黙的なコミットを発生させます。

  • トランザクション制御およびロックステ,トメントは,以前と同様に動作します。