Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
Visszaállítja az aktuális tranzakciót, és elveti a tranzakció kezdete óta végrehajtott összes módosítást. Az interaktív tranzakciókra vonatkozó követelményekről és használati mintákról az Interaktív tranzakciók című témakörben olvashat.
Szemantika
ROLLBACK [ TRANSACTION | WORK ]
Paraméterek
Ez az utasítás nem rendelkezik paraméterekkel.
Jegyzetek
- Ha nincs aktív tranzakció, a végrehajtás
ROLLBACKnem eredményez hibát. - Ha egy tranzakción belüli művelet hibát eredményez, a tranzakció megszakított állapotba kerül. Az ezt követő olvasási és írási műveleteket a rendszer hibaüzenettel utasítja el, amíg a felhasználó explicit módon vissza nem állítja a tranzakciót.
- Az utasítás végrehajtásához aktív tranzakcióval és megfelelő engedélyekkel kell rendelkeznie a tranzakcióban beolvasott vagy módosított összes objektumra.
Examples
Az alábbi példák az interaktív tranzakciók visszaállítását mutatják be.
Alapszintű visszaállítás
Futtassa az egyes utasításokat egy külön cellában:
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;
Végrehajtási hibák kezelése
Ha egy tranzakción belüli utasítás meghiúsul, a tranzakciót explicit módon vissza kell vonnia, mielőtt új tranzakciót indítana. Futtassa az egyes utasításokat egy külön cellában:
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;
Elemzési hibák kezelése
Az elemzési hibák explicit visszaállítást is igényelnek. Futtassa az egyes utasításokat egy külön cellában:
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;
Feltételes visszaállítás
Az üzleti szabályokon alapuló feltételes logikához használható ROLLBACK . Futtassa az egyes utasításokat egy külön cellában:
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;
Visszaállítás sikertelen véglegesítés után
Ha egy COMMIT hiba meghiúsul, explicit módon vissza kell állítania. Futtassa az egyes utasításokat egy külön cellában:
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;
Kapcsolódó cikkek
- BEGIN TRANSACTION (interaktív tranzakciók): Interaktív tranzakció indítása
- VÉGLEGESÍTÉS: Interaktív tranzakció véglegesítése és az összes módosítás véglegesítése
- ATOMIC összetett utasítás (nem interaktív tranzakciók):Több SQL-utasítás futtatása egyetlen atomi tranzakcióként automatikus véglegesítéssel és visszaállítással
- Tranzakciók: A tranzakciótámogatás, a követelmények és a korlátozások áttekintése
- Tranzakciós módok: Részletes minták és példák nem interaktív és interaktív tranzakciókhoz