Transaktionssteuerung
Unter einer SQL-Transaktion versteht man einen atomaren Anweisungsblock einer Folge von logisch zusammenhängenden Mutationen.
Last updated
Was this helpful?
Unter einer SQL-Transaktion versteht man einen atomaren Anweisungsblock einer Folge von logisch zusammenhängenden Mutationen.
Last updated
Was this helpful?
Die Anweisungen laufen nach dem Prinzip ab: "ALLES ODER NICHTS" (vgl. ).
Vor und nach einer Transaktion herrscht absolute Konsistenz.
Änderungen werden erst gespeichert und für andere Benutzer sichtbar, wenn die
Transaktion beendet ist.
Solange die Transaktion läuft, sind alle betroffenen Daten gesperrt.
Transaktionen sollten wegen der Sperren so kurz wie möglich dauern und möglichst
wenig SQL-Code kapseln.
Es besteht die Möglichkeit des Zurückrollens (Rollback), wenn in der Transaktion ein
Fehler auftritt oder diese abbricht. Es handelt sich dabei um ein implizites Rollback in
den Zustand vor der Transaktion.
Für die Rückgängigmachung wird ein Logbuch geführt, auch Transaktions-Protokoll
genannt. Dieses ist logisch aufgebaut, bestehend aus Anweisungen und nicht aus Zuständen.
Eine Transaktion kann mit folgenden Anweisungen gesteuert werden.
Name für bessere Übersicht optional
Zurückrollen bis zum Savepoint möglich
Transaktion und Anweisungen vor Savepoint bleiben bestehen
Alle Änderungen werden unwiderruflich gespeichert und für alle sichtbar
Alle Änderungen werden unwiderruflich verworfen
Jede explizit gestartete Transaktion muss explizit beendet werden. Ein BEGIN
muss also in jedem Fall entweder mit einem COMMIT
oder mit einem ROLLBACK
geschlossen werden.