Maison > base de données > tutoriel mysql > Comment un utilisateur peut-il implicitement mettre fin à la transaction MySQL en cours ?

Comment un utilisateur peut-il implicitement mettre fin à la transaction MySQL en cours ?

WBOY
Libérer: 2023-08-29 22:57:02
avant
929 Les gens l'ont consulté

用户如何隐式结束当前的 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)
Copier après la connexion

在事务之间我们运行 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)
Copier après la connexion

通过断开客户端会话

断开客户端会话将隐式结束当前会话,在这种情况下,更改将回滚。

通过终止客户端会话< /h2>

终止客户端会话也将隐式结束当前会话,在这种情况下,更改也将回滚。

通过 START TRANSACTION 命令

当前如果我们运行 START TRANSACTION 命令,事务将隐式结束。在这种情况下,将提交更改。

示例

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO Marks Values(4, &#39;Rahul&#39;,&#39;History&#39;,40);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(5, &#39;Yashraj&#39;,&#39;English&#39;,48);
Query OK, 1 row affected (0.00 sec)

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
Copier après la connexion

在此示例中,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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal