ホームページ  >  記事  >  毎日のプログラミング  >  MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

藏色散人
藏色散人オリジナル
2018-10-29 16:53:3621973ブラウズ

この記事では主に、mysql トランザクションの送信とトランザクションのロールバックに関する関連知識を紹介します。

トランザクションは SQL ステートメントのバッチであると言えますが、このバッチはアトムであり、分割できません。すべてのステートメントが実行のために送信されるか、ロールバック (ロールバック) が実行されません。トランザクションの詳細な定義については、以前の記事で紹介していますので、必要な方はまず参照してください。

mysql データ テーブルにおけるトランザクションの意味

Mysql データ テーブルでトランザクションを開く方法]

それでは、 ここでのトランザクションのコミットとトランザクションのロールバックは何を意味するのでしょうか?それを達成するにはどうすればよいでしょうか?

以下、簡単な例を挙げて詳しく説明します。

1. トランザクションの送信 (コミット)

正常に終了し、すべての DML (挿入、更新、削除) ステートメントの操作履歴と基盤となるハードディスク データが同期されます。一度。

たとえば、money というテーブルがあり、ID 1 と ID 2 の金額はそれぞれ 7000 と 8000 です。

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

#次に、「starttransaction」ステートメントを通じてトランザクションを開始します。

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

次に、テーブル内のデータに対していくつかの更新操作を実行します。次の図に示すように、ID 1 と ID 2 を持つ人の数を増やします。表ではそれぞれ5000。

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

前回の記事 [MySQL データ テーブルで手動トランザクションを有効にする方法] では、トランザクションが有効になってデータが更新された後、次のようになると述べました。データベース 実際のデータは変更されず、トランザクション ログのレコードのみが更新されます。データをデータベースに同期的に更新したい場合は、トランザクションのコミット操作を実行する必要があります。

ここでは、トランザクション送信の構文をマスターする必要があります:

commit;

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

トランザクションが送信された後、Navicat を使用して、データテーブルが発生しました。

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

#図に示すように、実際のテーブル データは、トランザクションが送信されて確認された後にのみ変更できます。

2. トランザクションのロールバック (ロールバック)

トランザクションが失敗すると、すべての DML ステートメントの操作履歴レコードがクリアされます。

上記のトランザクション送信操作を実行した後、マネー テーブルのデータは 12000 と 13000 に変更されました。

ここでは、トランザクションを再度開き、一連のデータ更新操作を実行します。

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

トランザクション ロールバックの基本構文:

rollback;

MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?

次に、図から次のことがわかります。トランザクションのロールバック操作を実行すると、トランザクション開始後の一連の操作がクリアされます。つまり、トランザクションのロールバックが実行された後も、データベース内のデータは変更されません。

注: トランザクション内のすべての SQL ステートメントが正しく実行された場合は、手動でコミットを送信する必要があります。そうでない場合は、実行エラーが発生した場合は、自分でロールバックを送信する必要があります。とすると、コミットではなく、すべての操作が自動的に判定されてロールバックされます。

この記事は、mysql データ テーブルの手動トランザクション送信とトランザクション ロールバックに関する関連知識を紹介するもので、理解しやすいので、困っている友人に役立つことを願っています。

mysql についてさらに詳しく知りたい場合は、PHP 中国語 Web サイト mysql ビデオ チュートリアル を参照してください。誰でも参照して学ぶことができます。

以上がMySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。