ホームページ >毎日のプログラミング >mysqlの知識 >MySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?
この記事では主に、mysql トランザクションの送信とトランザクションのロールバックに関する関連知識を紹介します。
トランザクションは SQL ステートメントのバッチであると言えますが、このバッチはアトムであり、分割できません。すべてのステートメントが実行のために送信されるか、ロールバック (ロールバック) が実行されません。トランザクションの詳細な定義については、以前の記事で紹介していますので、必要な方はまず参照してください。
【mysql データ テーブルにおけるトランザクションの意味】
【Mysql データ テーブルでトランザクションを開く方法]
それでは、 ここでのトランザクションのコミットとトランザクションのロールバックは何を意味するのでしょうか?それを達成するにはどうすればよいでしょうか?
以下、簡単な例を挙げて詳しく説明します。
1. トランザクションの送信 (コミット)
正常に終了し、すべての DML (挿入、更新、削除) ステートメントの操作履歴と基盤となるハードディスク データが同期されます。一度。
たとえば、money というテーブルがあり、ID 1 と ID 2 の金額はそれぞれ 7000 と 8000 です。
#次に、「starttransaction」ステートメントを通じてトランザクションを開始します。
次に、テーブル内のデータに対していくつかの更新操作を実行します。次の図に示すように、ID 1 と ID 2 を持つ人の数を増やします。表ではそれぞれ5000。
前回の記事 [MySQL データ テーブルで手動トランザクションを有効にする方法] では、トランザクションが有効になってデータが更新された後、次のようになると述べました。データベース 実際のデータは変更されず、トランザクション ログのレコードのみが更新されます。データをデータベースに同期的に更新したい場合は、トランザクションのコミット操作を実行する必要があります。
ここでは、トランザクション送信の構文をマスターする必要があります:
commit;
トランザクションが送信された後、Navicat を使用して、データテーブルが発生しました。
#図に示すように、実際のテーブル データは、トランザクションが送信されて確認された後にのみ変更できます。
2. トランザクションのロールバック (ロールバック)
トランザクションが失敗すると、すべての DML ステートメントの操作履歴レコードがクリアされます。
上記のトランザクション送信操作を実行した後、マネー テーブルのデータは 12000 と 13000 に変更されました。
ここでは、トランザクションを再度開き、一連のデータ更新操作を実行します。
トランザクション ロールバックの基本構文:
rollback;
次に、図から次のことがわかります。トランザクションのロールバック操作を実行すると、トランザクション開始後の一連の操作がクリアされます。つまり、トランザクションのロールバックが実行された後も、データベース内のデータは変更されません。
注: トランザクション内のすべての SQL ステートメントが正しく実行された場合は、手動でコミットを送信する必要があります。そうでない場合は、実行エラーが発生した場合は、自分でロールバックを送信する必要があります。とすると、コミットではなく、すべての操作が自動的に判定されてロールバックされます。
この記事は、mysql データ テーブルの手動トランザクション送信とトランザクション ロールバックに関する関連知識を紹介するもので、理解しやすいので、困っている友人に役立つことを願っています。
mysql についてさらに詳しく知りたい場合は、PHP 中国語 Web サイト mysql ビデオ チュートリアル を参照してください。誰でも参照して学ぶことができます。
以上がMySQL トランザクションのコミットとトランザクションのロールバックは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。