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ő
DMLmű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.