ROLLBACK
Neben der COMMIT-Anweisung ist die ROLLBACK-Anweisung der zweite Befehl, mit dem eine Transaktion abgeschlossen werden kann. Die Datenmanipulationen, die mittels INSERT-, UPDATE-, DELETE-Befehlen durchgeführt wurden, werden wieder rückgängig gemacht, sprich zurückgerollt. Danach liegt wieder die Datenbasis wie zu Beginn der Transaktion vor. Falls ein SAVEPOINT existiert, werden die DML-Anweisungen bis zum Savepoint zurückgerollt.
Syntax der ROLLBACK-Anweisung:
<ROLLBACK-Anweisung> ::= ROLLBACK [ WORK ] [ AND [ NO ] CHAIN ] [ <savepoint clause> ]; <savepoint clause> ::= TO SAVEPOINT <savepoint specifier>
[WORK] entspricht dem ANSI_SQL_Standard und kann wegfallen, ohne dass sich die Funktionalität der Anweisung ändert. Ist AND CHAIN spezifiziert, kann keine Savepoint-Klausel angegeben werden. AND NO CHAIN ist default. Die AND CHAIN-Klausel gibt an, dass die nachfolgende Transaktion mit dem gleichen Zugriffsmodus, gleichen Isolationsgrad und der gleichen Diagnostik Area startet, wie die gerade mit diesem Rollback-Befehl abgeschlossene Transaktion
Beispiele:
INSERT INTO Teile VALUES (123, 'Damenfahrrad abc', ...); INSERT INTO Mitarbeiter VALUES (67833, 'Müller', 'Anton', ...); -- bis zu diesem Zeitpunkt sind die neuen Daten zwar für Anfragen und Änderungen -- -- Andere Benuzter sehen derzeit jedoch noch den alten Datenbestand von Teile und Mitarbeiter ROLLBACK; -- Eine deferred Integritätsprüfung wird nicht durchgeführt. -- Es werden die beiden Einfügungen wieder rückgägng gemacht. -- Es liegt wieder die Datenbasis wie zu Beginn der Transaktion vor.
Quellen:
- INCITS/ISO/IEC 9075-1-2008. Part 1 "SQL/Framework", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
- INCITS/ISO/IEC 9075-1-2008. Part 2 "SQL/Foundation", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
- Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
- Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
- Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
- Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
Kategorie: SQL, Transaktionen, R