„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann wird eine Transaktion in SQL nicht automatisch zurückgesetzt?

Wann wird eine Transaktion in SQL nicht automatisch zurückgesetzt?

Veröffentlicht am 07.11.2024
Durchsuche:137

When is a Transaction Not Automatically Rolled Back in SQL?

Automatisches Transaktions-Rollback

Die Frage dreht sich um das Verhalten von Transaktionen, wenn ein Fehler innerhalb eines von START TRANSACTION und eingeschlossenen Blocks von SQL-Anweisungen auftritt COMMIT-TRANSAKTION. Das OP stellt fest, dass die Transaktion automatisch zurückgesetzt wird, wenn vor der COMMIT TRANSACTION-Anweisung ein Syntaxfehler auftritt.

Transaktions-Rollback-Mechanismus

Nein, Transaktionen werden nicht zurückgesetzt sofort zurück, wenn ein Fehler auftritt. Bestimmte Client-Anwendungen übernehmen jedoch möglicherweise bestimmte Richtlinien für die Fehlerbehandlung.

Zum Beispiel im MySQL-Befehlszeilen-Client:

  • Ein Fehler während der Ausführung tritt normalerweise auf stoppt den Ausführungsprozess und führt zum Beenden des Clients.
  • Das Beenden während einer laufenden Transaktion führt automatisch zum Rollback der Transaktion.

Anpassen der Rollback-Richtlinie

Beim Erstellen Ihrer eigenen Anwendungen haben Sie die Kontrolle über Transaktions-Rollback-Richtlinien. Beachten Sie jedoch, dass es Ausnahmen gibt, bei denen ein Rollback erzwungen wird:

  1. Client Disconnect: Das Beenden oder Trennen von der Datenbank löst immer einen Transaktions-Rollback aus.
  2. Deadlock/Lock-Wait Timeout: Wenn ein Deadlock oder Lock-Wait Timeout auftritt, findet ein implizites Rollback statt.

Für alle anderen Szenarien, wenn während einer Transaktion ein Fehler auftritt , wird der Fehler zurückgegeben und der Entwickler hat die Wahl, die Transaktion festzuschreiben oder zu verwerfen.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729746768 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3