Heim >Datenbank >MySQL-Tutorial >Wie kann ein Benutzer die aktuelle MySQL-Transaktion implizit beenden?
Hier sind die Möglichkeiten, die aktuelle MySQL-Transaktion implizit zu beenden –
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.
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 das Trennen der Client-Sitzung wird implizit die aktuelle Sitzung beendet. In diesem Fall werden die Änderungen rückgängig gemacht.
Durch das Beenden der Client-Sitzung wird implizit auch die aktuelle Sitzung beendet. In diesem Fall werden die Änderungen auch rückgängig gemacht.
Wenn wir derzeit den Befehl START TRANSACTION ausführen, wird die Transaktion implizit beendet. In diesem Fall werden die Änderungen übernommen.
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!