Databases Reference
In-Depth Information
in die Tabelle ein, zeigt uns die select -Anweisung selbstverständlich drei Da-
tensätze. Wie viele Datensätze sind in der Datenbank, wenn wir die Anweisung
rollback erneut ausführen? Wir sahen ja bereits, dass Änderungen durch die
rollback -Anweisung rückgängig gemacht werden. Es stellt sich die Frage, wel-
che Änderungen vom rollback betroffen sind.
Es ist kein Zufall, dass unsere select -Anweisung nach einem weiteren
rollback zwei Datensätze anzeigt: Die rollback -Anweisung macht alle Än-
derungen seit dem letzten commit rückgängig.
Mit Hilfe von commit können wir also Anweisungen zu so genannten Transak-
tionen gruppieren; commit schließt eine Transaktion ab und leitet die nächste ein.
Eine offene Transaktion ist eine Transaktion, die noch nicht mit commit abge-
schlossen wurde. Mit der Anweisung rollback können wir offene Transak-
tionen abbrechen und alle Änderungen rückgängig machen, die innerhalb der
Transaktion durchgeführt wurden. In Abschnitt 17.2 haben wir eine update -
Anweisung für die Tabelle konten unterbrochen. Da anschließend keine Ände-
rung mehr sichtbar war, wurde offenbar implizit ein rollback durchgeführt.
Definition: Transaktionen
Eine Transaktion ist eine atomare Folge von SQL-Anweisungen.
Eine Folge von SQL-Anweisungen heißt atomar , wenn entweder
alle Anweisungen der Folge ausgeführt wurden oder
keine Anweisung der Folge ausgeführt wurde.
Eine Transaktion wird also ganz oder gar nicht ausgeführt. So wird eine wichtige
Eigenschaft einer Transaktion sichergestellt.
Hinweis
Eine Transaktion transformiert eine Datenbank von einem konsisten-
ten Zustand in einen konsistenten Zustand.
Im Standardfall führt H2 - wie die meisten anderen RDBMS auch - nach jeder
SQL-Anweisung implizit die commit -Anweisung aus. Dieses Verhalten können
wir mit
set autocommit on
und
 
Search WWH ::




Custom Search