Heim  >  Artikel  >  Datenbank  >  Führt das Auslassen von COMMIT TRANSACTION zu einem automatischen Rollback von Transaktionen?

Führt das Auslassen von COMMIT TRANSACTION zu einem automatischen Rollback von Transaktionen?

Susan Sarandon
Susan SarandonOriginal
2024-10-24 15:12:02891Durchsuche

Does COMMIT TRANSACTION Omission Automatically Rollback Transactions?

Automatisches Rollback, wenn COMMIT TRANSACTION weggelassen wird

In der angegebenen SQL-Anweisung:

START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');

/** Assume there is syntax error SQL here...**/
Blah blah blah

DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;

Es stellt sich die Frage, ob Die Transaktion wird automatisch zurückgesetzt, da die COMMIT TRANSACTION-Anweisung aufgrund eines Syntaxfehlers nie erreicht wird.

Transaktions-Rollback-Verhalten

Entgegen der Annahme werden Transaktionen nicht automatisch durchgeführt bei Auftreten eines Fehlers zurückgesetzt. Dieses Verhalten wird normalerweise in Clientanwendungseinstellungen implementiert. Beispielsweise bricht der MySQL-Befehlszeilen-Client die Ausführung ab und wird bei einem Fehler beendet, was zum Rollback aller laufenden Transaktionen führt.

Bei der Entwicklung benutzerdefinierter Anwendungen haben Entwickler die Kontrolle über Transaktions-Rollback-Richtlinien. Es gibt jedoch bestimmte Ausnahmen:

  • Das Beenden der Datenbankverbindung führt immer zu einem Rollback laufender Transaktionen.
  • Ein Deadlock oder Lock-Wait-Timeout löst implizit auch ein Rollback aus.

Außerhalb dieser spezifischen Szenarien führen Fehler nicht automatisch zu einem Rollback. Der Fehler wird zurückgegeben und der Entwickler kann über die weitere Vorgehensweise entscheiden, einschließlich der Festschreibung der Transaktion trotz des Fehlers.

Das obige ist der detaillierte Inhalt vonFührt das Auslassen von COMMIT TRANSACTION zu einem automatischen Rollback von Transaktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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