Rumah >pangkalan data >tutorial mysql >Bagaimanakah pengguna boleh menamatkan transaksi MySQL semasa secara tersirat?

Bagaimanakah pengguna boleh menamatkan transaksi MySQL semasa secara tersirat?

WBOY
WBOYke hadapan
2023-08-29 22:57:02921semak imbas

用户如何隐式结束当前的 MySQL 事务?

Berikut adalah cara untuk menamatkan transaksi MySQL semasa secara tersirat -

Dengan menjalankan penyata DDL

Transaksi MySQL semasa akan ditamatkan secara tersirat dan akan ditamatkan dengan menjalankan mana-mana pernyataan DDL seperti CREATE atau DROP pangkalan data, Buat, ALTER atau DROP jadual atau rutin yang disimpan) untuk melakukan perubahan. Ini kerana, dalam MySQL, pernyataan ini tidak boleh digulung semula.

Contoh

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

mysql> INSERT INTO MARKS Values(3,'gaurav','Comp',69);
Query OK, 1 row affected (0.26 sec)

mysql> Create table student(id int, Name Varchar(10),);
Query OK, 0 rows affected (0.84 sec)

Di antara urus niaga kami menjalankan penyata DDL, jadi urus niaga akan tamat secara tersirat. MySQL akan menyimpan semua perubahan dan tidak boleh kembali. Kita boleh memerhatikannya dengan bantuan set hasil berikut -

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

mysql> select * from marks;
+------+---------+-----------+-------+
| Id | Name | Subject | Marks |
+------+---------+-----------+-------+
| 1 | Aarav | Maths | 50 |
| 1 | Harshit | Maths | 55 |
| 3 | Gaurav | Comp | 69 |
+------+---------+-----------+-------+
3 rows in set (0.00 sec)

Dengan memutuskan sambungan sesi pelanggan

Memutuskan sambungan sesi pelanggan akan secara tersirat menamatkan sesi semasa, dalam hal ini perubahan akan ditarik balik.

Dengan menamatkan sesi pelanggan

Menamatkan sesi pelanggan juga secara tersirat akan menamatkan sesi semasa, dalam hal ini perubahan juga akan ditarik balik.

Melalui arahan START TRANSACTION

Pada masa ini jika kita menjalankan arahan START TRANSACTION, transaksi akan tamat secara tersirat. Dalam kes ini, perubahan akan dilakukan.

Contoh

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

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

mysql> INSERT INTO Marks Values(5, 'Yashraj','English',48);
Query OK, 1 row affected (0.00 sec)

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

Dalam contoh ini, penyata MULA TRANSAKSI akan secara tersirat menamatkan urus niaga dan melakukan perubahan.

rreeee

Atas ialah kandungan terperinci Bagaimanakah pengguna boleh menamatkan transaksi MySQL semasa secara tersirat?. 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