2012-03-10 11 views
1

BEGINだけを使用してトランザクションで必要なものをすべて達成できるようです。ロールバックとコミット;自動コミットの使用が必要なシナリオがいくつかありますか? BEGINを呼び出しますか? autocommitをfalseに設定しますか? COMMITを呼び出すかどうか。 autocommitをtrueに設定しますか?MySQLでは、どのようにBEGIN;ロールバック;コミット。自動コミットに関連する?

答えて

1

セッションごとまたはグローバルに自動コミットを設定できます。自動コミットが必要なシナリオはありません(すべてのRDMSが自動コミットモードをサポートしているわけではありません)。私の意見では、自動コミットがデフォルトで提示されているのは、MyISAMエンジンがトランザクションをまったくサポートしていないからです。MyISAM用の移植アプリケーションを緩和するために、同じ動作を模倣します。

呼び出し元はBEGINです。 autocommitをfalseに設定しますか? COMMITを呼び出すかどうか。 autocommitをtrueに設定しますか? START TRANSACTION文を使用して、ステートメントの単一シリーズの自動コミットモードを無効にするにはmysql documentation

から

:...
のSTART TRANSACTIONを使用すると、COMMITでトランザクションを終了するまで、自動コミットを無効のまままたはロールバック。自動コミットモードは、それまでの状態に戻ります。

関連する問題