如果在事务中间结束会话,当前的 MySQL 事务会发生什么?
假设如果在事务中间结束会话,则 MySQL 会回滚当前的 MySQL 事务并结束。这意味着在当前事务中所做的所有数据库更改都将被删除。当会话结束时,这称为隐式回滚。
示例
假设我们在 'marks' 表中有以下值
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 | | 6 | Manak | History | 70 | +------+---------+-----------+-------+ 6 rows in set (0.00 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE marks SET Name = ‘Yash’ Where id = 5; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> quit; Bye
在上面的示例中,更新表中的值后,通过运行 quit 语句结束会话。当我们再次启动会话后检查表时,更新的值已被 MySQL 回滚,因为会话是在事务中间结束的。
广告