Heim >Datenbank >MySQL-Tutorial >Wie kann ein Benutzer die aktuelle MySQL-Transaktion implizit beenden?

Wie kann ein Benutzer die aktuelle MySQL-Transaktion implizit beenden?

WBOY
WBOYnach vorne
2023-08-29 22:57:02924Durchsuche

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

Hier sind die Möglichkeiten, die aktuelle MySQL-Transaktion implizit zu beenden –

Durch Ausführen einer DDL-Anweisung

Die aktuelle MySQL-Transaktion wird implizit beendet und durch Ausführen einer beliebigen DDL-Anweisung wie CREATE oder DROP-Datenbank beendet. Erstellen, ALTER oder DROP (Tabelle oder gespeicherte Routine), um die Änderungen zu übernehmen. Dies liegt daran, dass diese Anweisungen in MySQL nicht zurückgesetzt werden können.

Beispiel

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)

Zwischen Transaktionen führen wir DDL-Anweisungen aus, sodass die Transaktion implizit endet. MySQL speichert alle Änderungen und kann kein Rollback durchführen. Wir können es mithilfe des folgenden Ergebnissatzes beobachten:

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)

Durch Trennen der Client-Sitzung

Durch das Trennen der Client-Sitzung wird implizit die aktuelle Sitzung beendet. In diesem Fall werden die Änderungen rückgängig gemacht.

Durch Beenden der Client-Sitzung

Durch das Beenden der Client-Sitzung wird implizit auch die aktuelle Sitzung beendet. In diesem Fall werden die Änderungen auch rückgängig gemacht.

Über den Befehl START TRANSACTION

Wenn wir derzeit den Befehl START TRANSACTION ausführen, wird die Transaktion implizit beendet. In diesem Fall werden die Änderungen übernommen.

Beispiel

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)

In diesem Beispiel beendet die START TRANSACTION-Anweisung implizit die Transaktion und schreibt die Änderungen fest.

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)

Das obige ist der detaillierte Inhalt vonWie kann ein Benutzer die aktuelle MySQL-Transaktion implizit beenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen