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

WBOY
Freigeben: 2023-08-29 22:57:02
nach vorne
831 Leute haben es durchsucht

用户如何隐式结束当前的 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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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 < /h2>

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!