Sobes.tech
Middle

Welke transactiebeheercommando's kent u?

sobes.tech AI

Antwoord van AI

BEGIN (kan impliciet zijn), COMMIT, ROLLBACK.

  • BEGIN: Start een nieuwe transactie. Is optioneel voor de eerste DML-operator in een sessie, omdat de transactie impliciet wordt gestart.

    BEGIN TRANSACTION;
    
  • COMMIT: Slaat alle wijzigingen op die in de huidige transactie zijn aangebracht en beëindigt deze.

    COMMIT;
    
  • ROLLBACK: Annuleert alle wijzigingen die in de huidige transactie zijn aangebracht en beëindigt deze.

    ROLLBACK;
    

Sommige databases ondersteunen ook:

  • SAVEPOINT: Stelt een opslagpunt in binnen de huidige transactie. Hiermee kan je terugkeren naar dat punt zonder de hele transactie te annuleren.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT: Annuleert de wijzigingen tot aan het aangegeven opslagpunt.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT: Verwijdert het opslagpunt.

    RELEASE SAVEPOINT my_savepoint;
    

Voorbeeld van een sequentie van commando's:

BEGIN; -- start transactie

INSERT INTO users (name) VALUES ('Alice'); -- voer operatie uit

SAVEPOINT before_update; -- stel een opslagpunt in

UPDATE products SET price = price * 1.1 WHERE id = 1; -- voer nog een operatie uit

-- Als er iets misgaat met de update, kan je terugkeren naar het opslagpunt
-- ROLLBACK TO SAVEPOINT before_update;

-- Als alles goed gaat, bevestig de wijzigingen
COMMIT; -- beëindig de transactie en sla de wijzigingen op

-- Als je de hele transactie na BEGIN wilt annuleren
-- ROLLBACK;

Het begrijpen van deze commando's is cruciaal voor het waarborgen van de gegevensintegriteit in applicaties die werken met relationele databases.