Sobes.tech
Middle

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 DML din 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.