ホームページ > データベース > mysql チュートリアル > MySQL ストアド プロシージャで COMMIT を使用し、START トランザクションの下のトランザクションの 1 つが失敗するとどうなりますか?

MySQL ストアド プロシージャで COMMIT を使用し、START トランザクションの下のトランザクションの 1 つが失敗するとどうなりますか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2023-08-27 18:09:11
転載
877 人が閲覧しました

当我们在 MySQL 存储过程中使用 COMMIT 并且 START 事务下的事务之一失败时,会发生什么情况?

クエリの 1 つが失敗するかエラーが発生し、もう 1 つのクエリが正しく実行された場合でも、MySQL は正しく実行されたクエリの変更をコミットします。これは、次のデータを持つテーブル "employee.tbl" を使用している次の例から理解できます。

Example

mysql> Select * from employee.tbl;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Mohan   |
| 2  | Gaurav  |
| 3  | Sohan   |
| 4  | Saurabh |
| 5  | Yash    |
+----+---------+
5 rows in set (0.00 sec)

mysql> Delimiter //

mysql> Create Procedure st_transaction_commit_save()
    -> BEGIN
    -> START TRANSACTION;
    -> INSERT INTO employee.tbl (name) values ('Rahul');
    -> UPDATE employee.tbl set name = 'Gurdas' WHERE id = 10;
    -> COMMIT;
    -> END //
Query OK, 0 rows affected (0.00 sec)
ログイン後にコピー

このプロシージャを呼び出すと、UPDATE クエリが実行されることがわかります。テーブルに id =10 がないため、エラーが発生します。ただし、最初のクエリは正常に実行されるため、COMMIT によって変更がテーブルに保存されます。

えええええ

以上がMySQL ストアド プロシージャで COMMIT を使用し、START トランザクションの下のトランザクションの 1 つが失敗するとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート