Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah kami melaksanakan transaksi MySQL?

Bagaimanakah kami melaksanakan transaksi MySQL?

WBOY
WBOYke hadapan
2023-09-02 11:53:021224semak imbas

Bagaimanakah kami melaksanakan transaksi MySQL?

Kita tahu bahawa dalam transaksi, penyata dilaksanakan sebagai satu unit. Jika mana-mana operasi dalam urus niaga gagal, keseluruhan urus niaga gagal dan harus digulung semula jika tidak, sebarang perubahan yang dibuat oleh penyata disimpan ke pangkalan data. Untuk melaksanakan transaksi, MySQL menyediakan pernyataan berikut -

MULA TRANSAKSI

Seperti namanya, urus niaga bermula dari penyata ini. Pada asasnya, ia memberitahu MySQL bahawa penyataan berikutnya harus dianggap sebagai satu unit kerja sehingga akhir transaksi.

COMMIT

Penyata COMMIT melakukan perubahan pada pangkalan data. Dalam erti kata lain, apabila transaksi berjaya diselesaikan, arahan COMMIT harus dikeluarkan untuk membuat perubahan kepada semua jadual yang terlibat dengan berkesan.

ROLLBACK

Arahan ROLLBACK membuat asal sebarang perubahan yang dibuat oleh pernyataan dan mengembalikan pangkalan data kepada keadaan sebelumnya, iaitu apabila transaksi bermula.

Contoh

Berikut ialah contoh yang menunjukkan pelaksanaan transaksi MySQL -

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

mysql> INSERT INTO Marks Values(1, 'Aarav','Maths',50);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(2, 'Harshit','Maths',55);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.06 sec)

Dalam contoh ini, urus niaga dimulakan oleh penyata MULA TRANSAKSI. Kemudian laksanakan dua pernyataan INSERT, diikuti dengan pernyataan COMMIT. Pernyataan COMMIT menyimpan perubahan pada pangkalan data, yang boleh diperhatikan daripada set hasil berikut, yang menunjukkan bahawa nilai telah dimasukkan ke dalam jadual -

mysql> SELECT * FROM Marks;
 +------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 2    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

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

mysql> INSERT INTO Marks Values(1, 'Aarav','History',40);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(1, 'Harshit','History',48);
Query OK, 1 row affected (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)

Dalam contoh ini, urus niaga dimulakan oleh penyata MULA TRANSAKSI . Kemudian laksanakan dua pernyataan INSERT, diikuti dengan pernyataan ROLLBACK. Pernyataan ROLLBACK akan membuat asal perubahan yang dibuat pada pangkalan data seperti yang dapat diperhatikan dari set hasil berikut yang menunjukkan bahawa tiada nilai baru dimasukkan ke dalam jadual -

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 1    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

Atas ialah kandungan terperinci Bagaimanakah kami melaksanakan transaksi MySQL?. 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