首頁  >  文章  >  資料庫  >  如果在目前交易的中間執行 START TRANSACTION 指令,目前 MySQL 交易會發生什麼事?

如果在目前交易的中間執行 START TRANSACTION 指令,目前 MySQL 交易會發生什麼事?

WBOY
WBOY轉載
2023-09-03 10:41:021236瀏覽

如果在当前事务的中间执行 START TRANSACTION 命令,当前 MySQL 事务会发生什么?

如果在目前交易中間執行 START TRANSACTION,則目前交易將被提交並結束。在目前事務中所做的所有資料庫變更都將永久生效。這稱為 START TRANSACTION 命令的隱式提交。

範例

假設我們在表格「marks」中有以下值

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)

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)

以上是如果在目前交易的中間執行 START TRANSACTION 指令,目前 MySQL 交易會發生什麼事?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除