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