以下是隱式結束當前 MySQL 事務的方法 –
通過運行 DDL 語句
當前 MySQL 事務將隱式結束,并且將通過運行任何 DDL 語句(例如 CREATE 或 DROP 數據庫、Create、ALTER 或 DROP 表或存儲例程)來提交更改。這是因為,在MySQL中,這些語句是無法回滾的。
示例
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)
登錄后復制
在事務之間我們運行 DDL 語句,因此該事務將隱式結束。 MySQL 將保存所有更改并且無法回滾。我們可以借助以下結果集來觀察它 –
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)
登錄后復制
通過斷開客戶端會話
斷開客戶端會話將隱式結束當前會話,在這種情況下,更改將回滾。
通過終止客戶端會話
終止客戶端會話也將隱式結束當前會話,在這種情況下,更改也將回滾。
通過 START TRANSACTION 命令
當前如果我們運行 START TRANSACTION 命令,事務將隱式結束。在這種情況下,將提交更改。
示例
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)
登錄后復制
在此示例中,START TRANSACTION 語句將隱式結束事務并提交更改。
mysql> select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | | 4 | Rahul | History | 40 | | 5 | Yashraj | English | 48 | +------+---------+-----------+-------+ 5 rows in set (0.00 sec)
登錄后復制
以上就是用戶如何隱式結束當前的 MySQL 事務?的詳細內容,更多請關注www.92cms.cn其它相關文章!