首頁  >  文章  >  資料庫  >  使用者如何隱式結束目前的 MySQL 事務?

使用者如何隱式結束目前的 MySQL 事務?

WBOY
WBOY轉載
2023-08-29 22:57:02848瀏覽

用户如何隐式结束当前的 MySQL 事务?

以下是隱含結束目前MySQL 交易的方法-

透過執行DDL 語句

目前MySQL 交易將隱含結束,並且將透過執行任何DDL 語句(例如CREATE 或DROP 資料庫、Create、ALTER 或DROP 表或儲存例程)來提交變更。這是因為,在MySQL中,這些語句是無法回滾的。

範例

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)

在交易之間我們執行 DDL 語句,因此該交易將會隱含結束。 MySQL 將保存所有變更並且無法回滾。我們可以藉助以下結果集來觀察它-

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)

透過斷開客戶端會話

斷開客戶端會話將隱式結束目前會話,在這種情況下,變更將回滾。

透過終止客戶端會話

終止客戶端會話也將隱式結束目前會話,在這種情況下,變更也會回溯。

透過 START TRANSACTION 指令

目前如果我們執行 START TRANSACTION 指令,交易將會隱式結束。在這種情況下,將提交更改。

範例

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)

以上是使用者如何隱式結束目前的 MySQL 事務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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