Heim  >  Artikel  >  Datenbank  >  Was passiert mit der aktuellen MySQL-Transaktion, wenn die Sitzung mitten in der Transaktion endet?

Was passiert mit der aktuellen MySQL-Transaktion, wenn die Sitzung mitten in der Transaktion endet?

王林
王林nach vorne
2023-08-25 09:53:041366Durchsuche

如果会话在事务中途结束,当前 MySQL 事务会发生什么情况?

Es wird davon ausgegangen, dass, wenn die Sitzung in einer Transaktion endet, die aktuelle MySQL-Transaktion von MySQL zurückgesetzt und beendet wird. Dies bedeutet, dass alle in der aktuellen Transaktion vorgenommenen Datenbankänderungen gelöscht werden. Das Ende der Sitzung wird als implizites Rollback bezeichnet.

Beispiel

Angenommen, wir haben die folgenden Werte in der Tabelle „Markierungen“

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    |
| 6    | Manak   | History   | 70    |
+------+---------+-----------+-------+
6 rows in set (0.00 sec)

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

mysql> UPDATE marks SET Name = ‘Yash’ Where id = 5;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> quit;
Bye

Beenden Sie im obigen Beispiel nach dem Aktualisieren der Werte in der Tabelle die Sitzung, indem Sie die Quit-Anweisung ausführen. Wenn wir uns die Tabelle nach dem erneuten Starten der Sitzung ansehen, wurden die aktualisierten Werte von MySQL zurückgesetzt, da die Sitzung in einer Transaktion endete.

Das obige ist der detaillierte Inhalt vonWas passiert mit der aktuellen MySQL-Transaktion, wenn die Sitzung mitten in der Transaktion endet?. 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