Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Führt einen Rollback der aktuellen Transaktion durch, wobei alle seit Beginn der Transaktion vorgenommenen Änderungen verworfen werden. Anforderungen und Verwendungsmuster für interaktive Transaktionen finden Sie unter "Interaktive Transaktionen".
Syntax
ROLLBACK [ TRANSACTION | WORK ]
Parameter
Diese Anweisung hat keine Parameter.
Hinweise
- Wenn keine aktive Transaktion vorhanden ist, führt die Ausführung
ROLLBACKnicht zu einem Fehler. - Wenn ein Vorgang innerhalb einer Transaktion zu einem Fehler führt, gibt die Transaktion einen abgebrochenen Zustand ein. Nachfolgende Lese- und Schreibvorgänge werden mit einem Fehler abgelehnt, bis die Transaktion explizit vom Benutzer zurückgesetzt wird.
- Zum Ausführen dieser Anweisung benötigen Sie eine aktive Transaktion und entsprechende Berechtigungen für alle Objekte, die innerhalb der Transaktion gelesen oder geändert wurden.
Beispiele
Die folgenden Beispiele veranschaulichen das Zurücksetzen interaktiver Transaktionen.
Grundlegendes Rollback
Führen Sie jede Anweisung in einer separaten Zelle aus:
BEGIN TRANSACTION;
-- Attempt an insert operation
INSERT INTO my_table VALUES (1, 'incorrect-value');
-- After discovering the mistake, rollback the transaction
-- (no changes are actually made to the tables)
ROLLBACK TRANSACTION;
Behandeln von Ausführungsfehlern
Wenn eine Anweisung innerhalb einer Transaktion fehlschlägt, müssen Sie explizit ein Rollback durchführen, bevor Sie eine neue Transaktion starten. Führen Sie jede Anweisung in einer separaten Zelle aus:
BEGIN TRANSACTION;
-- A query that causes a division by zero error
SELECT 1/0;
-- Throws error asking user to roll back the transaction
SELECT 1;
-- After error, user must roll back the transaction
-- as it cannot be committed
ROLLBACK TRANSACTION;
Behandeln von Parserfehlern
Parserfehler erfordern auch explizites Rollback. Führen Sie jede Anweisung in einer separaten Zelle aus:
BEGIN TRANSACTION;
-- A query that causes a parsing error
SELLLLLLECT 1;
-- Throws error asking user to roll back the transaction
SELECT 1;
-- After error, user must roll back the transaction
-- as it cannot be committed
ROLLBACK TRANSACTION;
Bedingter Rollback
Sie können für bedingte Logik basierend auf Geschäftsregeln verwenden ROLLBACK . Führen Sie jede Anweisung in einer separaten Zelle aus:
BEGIN TRANSACTION;
-- Make changes
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Check a condition and rollback if not met
BEGIN
DECLARE total_balance INT;
SET total_balance = (SELECT SUM(balance) FROM accounts);
IF total_balance < 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END;
Rollback nach fehlgeschlagenem Commit-Vorgang
Wenn ein COMMIT Fehler auftritt, müssen Sie einen expliziten Rollback ausführen. Führen Sie jede Anweisung in einer separaten Zelle aus:
BEGIN TRANSACTION;
-- Make changes
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
-- Attempt to commit
COMMIT;
-- If COMMIT fails (e.g., due to write conflict),
-- the transaction is aborted
-- You must explicitly roll back before starting a new transaction
ROLLBACK;
Verwandte Artikel
- BEGIN TRANSACTION (interaktive Transaktionen): Beginnen einer interaktiven Transaktion
- COMMIT: Eine interaktive Transaktion abschließen und alle Änderungen dauerhaft machen
- ATOMIC compound statement (nicht-interaktive Transaktionen): Führen Sie mehrere SQL-Anweisungen als eine einzige atomare Transaktion mit automatischem Commit und Rollback aus
- Transaktionen: Übersicht über Transaktionsunterstützung, Anforderungen und Einschränkungen
- Transaktionsmodi: Detaillierte Muster und Beispiele für nicht interaktive und interaktive Transaktionen