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