Ce comenzi de gestionare a tranzacțiilor cunoști?
sobes.tech AI
Răspuns de la AI
BEGIN (poate fi implicit), COMMIT, ROLLBACK.
-
BEGIN: Începe o nouă tranzacție. Este opțional pentru primul operator
DMLdin sesiune, deoarece tranzacția va începe implicit.BEGIN TRANSACTION; -
COMMIT: Salvează toate modificările făcute în tranzacția curentă și o încheie.
COMMIT; -
ROLLBACK: Anulează toate modificările făcute în tranzacția curentă și o încheie.
ROLLBACK;
Unele SGBD-uri suportă de asemenea:
-
SAVEPOINT: Stabilește un punct de salvare în interiorul tranzacției curente. Permite revenirea la acest punct fără a anula întreaga tranzacție.
SAVEPOINT my_savepoint; -
ROLLBACK TO SAVEPOINT: Anulează modificările până la punctul de salvare specificat.
ROLLBACK TO SAVEPOINT my_savepoint; -
RELEASE SAVEPOINT: Șterge punctul de salvare.
RELEASE SAVEPOINT my_savepoint;
Exemplu de secvență de comenzi:
BEGIN; -- începe tranzacția
INSERT INTO users (name) VALUES ('Alice'); -- execută operația
SAVEPOINT before_update; -- stabilește un punct de salvare
UPDATE products SET price = price * 1.1 WHERE id = 1; -- execută o altă operație
-- Dacă ceva nu merge bine cu actualizarea, te poți întoarce la punctul de salvare
-- ROLLBACK TO SAVEPOINT before_update;
-- Dacă totul este în regulă, confirmă modificările
COMMIT; -- încheie tranzacția și salvează modificările
-- Dacă trebuie să anulezi întreaga tranzacție după BEGIN
-- ROLLBACK;
Înțelegerea acestor comenzi este critică pentru asigurarea integrității datelor în aplicațiile care lucrează cu baze de date relaționale.