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

Làm cách nào chúng ta có thể sử dụng các giao dịch lồng nhau được phép trong MySQL?

Chúng tôi có thể cho phép nhiều giao dịch với sự trợ giúp của lệnh START và SAVEPOINT. Hãy để chúng tôi tạo một bảng với sự trợ giúp của lệnh CREATE.

Tạo bảng

mysql> CREATE table transactionDemo
-> (
-> id int auto_increment,
-> primary key(id)
-> );
Query OK, 0 rows affected (0.76 sec)

Sau đó, tôi sẽ bắt đầu giao dịch với sự trợ giúp của lệnh START -

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

Sau đó, tôi đang chèn bản ghi sau với sự trợ giúp của lệnh INSERT -

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.04 sec)

Chúng ta có thể hiển thị một bản ghi với sự trợ giúp của câu lệnh SELECT, như sau -

mysql> SELECT *from transactionDemo;

Sau đây là kết quả

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)

Sau đó, tôi đang lưu truy vấn này với sự trợ giúp của SAVEPOINT. Truy vấn như sau -

mysql> SAVEPOINT t2;

Chèn bản ghi

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả các bản ghi với sự trợ giúp của lệnh SELECT -

mysql> SELECT *from transactionDemo;

Sau đây là kết quả

+----+
| id |
+----+
| 1  |
| 2  |
+----+
2 rows in set (0.00 sec)

Bây giờ, chúng tôi có thể khôi phục giao dịch đầu tiên -

mysql> ROLLBACK TO t2;
Query OK, 0 rows affected (0.03 sec)

Bây giờ, chúng tôi có thể hiển thị giao dịch đã lưu trước đó -

mysql> SELECT *from transactionDemo;

Sau đây là kết quả

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)