Computer >> Máy Tính >  >> Lập trình >> MySQL

Điều gì sẽ xảy ra với giao dịch MySQL hiện tại nếu lệnh BẮT ĐẦU GIAO DỊCH được thực thi ở giữa giao dịch hiện tại đó?


Giao dịch hiện tại sẽ được cam kết và kết thúc nếu BẮT ĐẦU GIAO DỊCH được thực hiện ở giữa giao dịch hiện tại. Tất cả các thay đổi cơ sở dữ liệu được thực hiện trong giao dịch hiện tại sẽ được thực hiện vĩnh viễn. Đây được gọi là một cam kết ngầm bởi lệnh BẮT ĐẦU GIAO DỊCH.

Ví dụ

Giả sử chúng ta có các giá trị sau trong bảng "mark"

 mysql> select * from mark; + ------ + --------- + ----------- + ------- + | Id | Tên | Chủ đề | Dấu | + ------ + --------- + ----------- + ------- + | 1 | Aarav | Toán học | 50 || 1 | Nhảm nhí | Toán học | 55 || 3 | Gaurav | Phần mềm | 69 | + ------ + --------- + ----------- + ------- + 3 hàng trong bộ (0,00 giây) mysql> BẮT ĐẦU GIAO DỊCH; Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO Giá trị đánh dấu (4, 'Rahul', 'Lịch sử', 40); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO Giá trị đánh dấu ( 5, 'Yashraj', 'English', 48); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> BẮT ĐẦU GIAO DỊCH; Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) 

Trong ví dụ này, chúng ta có thể thấy rằng khi câu lệnh BẮT ĐẦU GIAO DỊCH được thực hiện ở giữa giao dịch hiện tại thì nó sẽ mặc nhiên kết thúc giao dịch hiện tại và các thay đổi sẽ được thực hiện.

 mysql> select * from mark; + ------ + --------- + ----------- + ------- + | Id | Tên | Chủ đề | Dấu | + ------ + --------- + ----------- + ------- + | 1 | Aarav | Toán học | 50 || 1 | Nhảm nhí | Toán học | 55 || 3 | Gaurav | Phần mềm | 69 || 4 | Rahul | Lịch sử | 40 || 5 | Yashraj | Tiếng anh | 48 | + ------ + --------- + ----------- + ------- + 5 hàng trong bộ (0,00 giây)