Middle
Aké príkazy na správu transakcií poznáte?
sobes.tech AI
Odpoveď od AI
BEGIN (môže byť implicitný), COMMIT, ROLLBACK.
-
BEGIN: Začína novú transakciu. Je voliteľný pre prvý
DMLoperátor v relácii, pretože transakcia začne implicitne.BEGIN TRANSACTION; -
COMMIT: Uloží všetky zmeny vykonané v aktuálnej transakcii a ukončí ju.
COMMIT; -
ROLLBACK: Zruší všetky zmeny vykonané v aktuálnej transakcii a ukončí ju.
ROLLBACK;
Niektoré databázové systémy tiež podporujú:
-
SAVEPOINT: Nastaví bod uloženia v rámci aktuálnej transakcie. Umožňuje vrátiť sa k tomuto bodu bez zrušenia celej transakcie.
SAVEPOINT my_savepoint; -
ROLLBACK TO SAVEPOINT: Zruší zmeny do určeného bodu uloženia.
ROLLBACK TO SAVEPOINT my_savepoint; -
RELEASE SAVEPOINT: Odstráni bod uloženia.
RELEASE SAVEPOINT my_savepoint;
Príklad sekvencie príkazov:
BEGIN; -- začať transakciu
INSERT INTO users (name) VALUES ('Alice'); -- vykonať operáciu
SAVEPOINT before_update; -- nastaviť bod uloženia
UPDATE products SET price = price * 1.1 WHERE id = 1; -- vykonať ďalšiu operáciu
-- Ak sa niečo pokazí s aktualizáciou, je možné sa vrátiť k bodu uloženia
-- ROLLBACK TO SAVEPOINT before_update;
-- Ak je všetko v poriadku, potvrdiť zmeny
COMMIT; -- ukončiť transakciu a uložiť zmeny
-- Ak je potrebné zrušiť celú transakciu po BEGIN
-- ROLLBACK;
Pochopenie týchto príkazov je kľúčové pre zabezpečenie integrity dát v aplikáciách pracujúcich s relačnými databázami.