クエリの 1 つが失敗するかエラーが発生し、もう 1 つのクエリが正しく実行された場合でも、MySQL は正しく実行されたクエリの変更をコミットします。これは、次のデータを持つテーブル "employee.tbl" を使用している次の例から理解できます。
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 サイトの他の関連記事を参照してください。