Sobes.tech
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ý DML operá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.