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.