Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
„Rollback` aj` SavePoint` sú príkazy SQL používané na správu transakčných stavov, ale slúžia na rôzne účely.
Rollback:
* Účel: Redukuje databázu do predchádzajúceho stavu odstránením všetkých zmien vykonaných v rámci súčasnej transakcie.
* rozsah: Vráťte všetko od začiatku transakcie.
* Príklad:
`` sql
- Začať transakciu
Začať transakciu;
- Vložte niektoré údaje
Vložte do zákazníkov (meno, e -mail) Hodnoty ('John Doe', 'John.doe@example.com');
Vložte do objednávok (CustomerID, Orderdate) Hodnoty (1, „2023-10-27“);
- Rollback Všetky zmeny vykonané v transakcii
Transakcia valcku;
- Databáza je teraz späť do svojho stavu pred začiatkom transakcie.
`` `
SavePoint:
* Účel: Označuje konkrétny bod v rámci transakcie pre potenciálne vrátenie.
* rozsah: Umožňuje valiť sa späť iba k definovanému bodu SavePoint a zachováva sa zmeny vykonané po ňom.
* Príklad:
`` sql
- Začať transakciu
Začať transakciu;
- Vložte niektoré údaje
Vložte do zákazníkov (meno, e -mail) Hodnoty ('Jane Doe', 'jane.doe@example.com');
- Vytvorte si SavePoint
SavePoint mysavepoint;
- Vložte viac údajov
Vložte do objednávok (CustomerID, Orderdate) Hodnoty (2, „2023-10-28“);
- vráti sa do SAVEPOINT
Transakcia Rollback do MySavepoint;
- Teraz sa databáza vráti do svojho stavu po prvom vložení, pričom objednávku je uvedená po bode SavePoint.
`` `
Zhrnutie:
| Funkcia | RALLACK | SavePoint |
| --- | --- | --- |
| Účel | Odpustite všetky zmeny v súčasnej transakcii Vrátenie do konkrétneho bodu v rámci transakcie
| rozsah | Celá transakcia Konkrétny bod
| Výsledok | Databáza sa vráti do svojho stavu pred transakciou Databáza sa vráti do stavu v SAVEPOINT |
Kľúčové rozdiely:
* `Rollback` bez toho, aby sa SAVEPOINT vrátil všetky zmeny v transakcii.
* `Rollback` s realtPoint vráti databázu do stavu v režime SavePoint a po ňom zlikviduje zmeny.
Kedy použiť ktoré:
* rollback: Používajte, keď chcete vyradiť všetky zmeny v rámci transakcie, zvyčajne v dôsledku chýb alebo nezrovnalostí o údajoch.
* SavePoint: Použite, keď sa chcete v rámci transakcie vrátiť do konkrétneho stavu, zachovanie zmien vykonaných po bode SAVEPOINT. Je to užitočné pre zložité operácie, kde musíte vrátiť späť konkrétne časti transakcie bez toho, aby ste ovplyvnili celý proces.