如果在事務中間結束會話,當前的 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 回滾,因為會話是在事務中間結束的。

更新於: 2020-06-22

119 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.