Rumah > pangkalan data > tutorial mysql > Bagaimanakah kami melaksanakan transaksi MySQL?

Bagaimanakah kami melaksanakan transaksi MySQL?

WBOY
Lepaskan: 2023-09-02 11:53:02
ke hadapan
1337 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah kami melaksanakan transaksi MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan