以下是隱式結(jié)束當(dāng)前 MySQL 事務(wù)的方法 –
通過運(yùn)行 DDL 語(yǔ)句
當(dāng)前 MySQL 事務(wù)將隱式結(jié)束,并且將通過運(yùn)行任何 DDL 語(yǔ)句(例如 CREATE 或 DROP 數(shù)據(jù)庫(kù)、Create、ALTER 或 DROP 表或存儲(chǔ)例程)來提交更改。這是因?yàn)?,在MySQL中,這些語(yǔ)句是無法回滾的。
示例
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)
登錄后復(fù)制
在事務(wù)之間我們運(yùn)行 DDL 語(yǔ)句,因此該事務(wù)將隱式結(jié)束。 MySQL 將保存所有更改并且無法回滾。我們可以借助以下結(jié)果集來觀察它 –
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)
登錄后復(fù)制
通過斷開客戶端會(huì)話
斷開客戶端會(huì)話將隱式結(jié)束當(dāng)前會(huì)話,在這種情況下,更改將回滾。
通過終止客戶端會(huì)話
終止客戶端會(huì)話也將隱式結(jié)束當(dāng)前會(huì)話,在這種情況下,更改也將回滾。
通過 START TRANSACTION 命令
當(dāng)前如果我們運(yùn)行 START TRANSACTION 命令,事務(wù)將隱式結(jié)束。在這種情況下,將提交更改。
示例
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)
登錄后復(fù)制
在此示例中,START TRANSACTION 語(yǔ)句將隱式結(jié)束事務(wù)并提交更改。
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)
登錄后復(fù)制
以上就是用戶如何隱式結(jié)束當(dāng)前的 MySQL 事務(wù)?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!