Sobes.tech
Middle

Milyen tranzakciókezelő parancsokat ismer?

sobes.tech MI

Válasz az MI-től

BEGIN (elrejthető), COMMIT, ROLLBACK.

  • BEGIN: Új tranzakciót indít. Nem kötelező az első DML művelethez egy munkamenetben, mivel a tranzakció implicit módon elindul.

    BEGIN TRANSACTION;
    
  • COMMIT: Elmenti az összes változást, amit a jelenlegi tranzakcióban végrehajtottak, és befejezi azt.

    COMMIT;
    
  • ROLLBACK: Visszavonja az összes változást, amit a jelenlegi tranzakcióban végrehajtottak, és befejezi azt.

    ROLLBACK;
    

Néhány adatbázis-kezelő rendszer támogatja továbbá:

  • SAVEPOINT: Egy mentési pontot állít be a jelenlegi tranzakción belül. Lehetővé teszi, hogy visszatérjen ehhez a ponthoz anélkül, hogy az egész tranzakciót megszakítaná.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT: Visszavonja a változtatásokat a megadott mentési pontig.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT: Törli a mentési pontot.

    RELEASE SAVEPOINT my_savepoint;
    

Példa parancssorozatra:

BEGIN; -- tranzakció indítása

INSERT INTO users (name) VALUES ('Alice'); -- művelet végrehajtása

SAVEPOINT before_update; -- mentési pont beállítása

UPDATE products SET price = price * 1.1 WHERE id = 1; -- másik művelet végrehajtása

-- Ha valami nem sikerül az frissítésnél, vissza lehet térni a mentési pontra
-- ROLLBACK TO SAVEPOINT before_update;

-- Ha minden rendben van, megerősítjük a változtatásokat
COMMIT; -- tranzakció befejezése és a változtatások mentése

-- Ha az összes tranzakciót meg akarjuk szakítani a BEGIN után
-- ROLLBACK;

Ezeknek a parancsoknak az ismerete kulcsfontosságú az adatok integritásának biztosításához olyan alkalmazásokban, amelyek relációs adatbázisokkal dolgoznak.