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

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

WBOY
發布: 2023-09-03 10:41:02
轉載
1305 人瀏覽過

如果在当前事务的中间执行 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板