Select*fromemployee.tbl;+----+---------+ |Id|Nama |. +----+---------+|1 |Mohan ||2 |Gaurav ||3&nb"/> Select*fromemployee.tbl;+----+---------+ |Id|Nama |. +----+---------+|1 |Mohan ||2 |Gaurav ||3&nb">

Rumah >pangkalan data >tutorial mysql >Apakah yang berlaku apabila kami menggunakan COMMIT dalam prosedur tersimpan MySQL dan salah satu transaksi di bawah transaksi START gagal?

Apakah yang berlaku apabila kami menggunakan COMMIT dalam prosedur tersimpan MySQL dan salah satu transaksi di bawah transaksi START gagal?

WBOY
WBOYke hadapan
2023-08-27 18:09:11873semak imbas

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

Andaikan salah satu pertanyaan gagal atau menghasilkan ralat, dan pertanyaan lain dilaksanakan dengan betul, MySQL masih melakukan perubahan untuk pertanyaan yang dilaksanakan dengan betul. Ia boleh difahami daripada contoh berikut di mana kita menggunakan jadual "employee.tbl" dengan data berikut -

Contoh

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)

Sekarang apabila kita memanggil prosedur ini kita tahu bahawa pertanyaan KEMASKINI akan menghasilkan ralat kerana kita tidak' t mempunyai id pada jadual kami =10. Tetapi memandangkan pertanyaan pertama akan berjaya dilaksanakan, COMMIT akan menyimpan perubahan pada jadual.

rreeee

Atas ialah kandungan terperinci Apakah yang berlaku apabila kami menggunakan COMMIT dalam prosedur tersimpan MySQL dan salah satu transaksi di bawah transaksi START gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam