Transakce seskupují sadu úkolů do jedné prováděcí jednotky. Každá transakce začíná konkrétní úlohou a končí, když jsou všechny úkoly ve skupině úspěšně dokončeny. Pokud některá z úloh selže, transakce selže. Transakce má tedy pouze dva výsledky: úspěch nebo selhání .
Příklad transakce převodu 150 USD z účtu A na účet B:
1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>
Neúplné kroky vedou k selhání transakce. Databázová transakce musí být podle definice atomická, konzistentní, izolovaná a trvanlivá.
Ty jsou lidově známé jako KYSELINA vlastnosti. Tyto vlastnosti mohou zajistit souběžné provádění více transakcí bez konfliktu.
Vlastnosti transakce
- Atomicita: Výsledek transakce může být buď zcela úspěšný, nebo zcela neúspěšný. Celá transakce musí být vrácena zpět, pokud jedna její část selže.
- Konzistence: Transakce zachovávají omezení integrity přesouváním databáze z jednoho platného stavu do jiného.
- Izolace: Souběžné transakce jsou od sebe izolovány, což zajišťuje přesnost dat.
- Trvanlivost: Jakmile je transakce potvrzena, její změny zůstávají v platnosti i v případě selhání systému.
Jak implementovat příkaz řízení transakcí pomocí SQL?
Pro řízení transakcí se používají následující příkazy. Je důležité si uvědomit, že tyto příkazy nelze použít při vytváření tabulek a používají se pouze s příkazy DML, jako je- VLOŽIT , AKTUALIZACE , a VYMAZAT .
Příkaz BEGIN TRANSACTION
Označuje počáteční bod explicitní nebo místní transakce.
Syntax:
BEGIN TRANSACTION název_transakce ;
Příkaz SET TRANSACTION
Hodnoty vlastností aktuální transakce, jako je úroveň izolace transakce a režim přístupu, se nastavují pomocí příkazu SET TRANSACTION v MySQL.
Syntax:
NASTAVIT TRANSAKCI [ ČTĚTE ZÁPIS | POUZE KE ČTENÍ ];
Příkaz COMMIT
Pokud je vše v pořádku se všemi výpisy v rámci jedné transakce, jsou všechny změny zaznamenány společně do databáze je volána angažovaný . Příkaz COMMIT uloží všechny transakce do databáze od posledního příkazu COMMIT nebo ROLLBACK.
Syntax:
SPÁCHAT;
Příklad:
Ukázková tabulka1

výstup
Následuje příklad, který by odstranil ty záznamy z tabulky, které mají věk = 20, a poté COMMIT změny v databázi.
Dotaz
DELETE FROM Student WHERE AGE = 20; COMMIT;>
Výstup
Dva řádky z tabulky by tedy byly odstraněny a příkaz SELECT by vypadal takto:

výstup
Příkaz ROLLBACK
Pokud se u kteréhokoli ze seskupených příkazů SQL vyskytne chyba, je třeba všechny změny přerušit. Proces vracení změn se nazývá vrácení zpět . Tento příkaz lze použít pouze ke zrušení transakcí od posledního příkazu COMMIT nebo ROLLBACK.
vložení řazení java
Syntaxe příkazu ROLLBACK:
NÁVRAT;
Příklad:
Z výše uvedeného příkladu Vzorová tabulka 1 ,
Odstraňte z tabulky ty záznamy, které mají věk = 20, a poté VRTULUJTE změny v databázi.
Dotaz
DELETE FROM Student WHERE AGE = 20; ROLLBACK;>
Výstup

výstup
Příkaz SAVEPOINT
ULOŽIT BOD vytváří body v rámci skupin transakcí, ve kterých lze ROLLBACK.
SAVEPOINT je bod v transakci, ve kterém můžete vrátit transakci zpět do určitého bodu, aniž byste museli vrátit zpět celou transakci.
Syntaxe příkazu Savepoint:
SAVEPOINT SAVEPOINT_NAME;
Tento příkaz se používá pouze při vytváření SAVEPOINT mezi všemi transakcemi.
Obecně se ROLLBACK používá ke zrušení skupiny transakcí.
Syntaxe pro návrat zpět k příkazu Savepoint:
NÁVRAT NA SAVEPOINT_NAME;
můžete kdykoli ROLLBACK na libovolný SAVEPOINT vrátit příslušná data do původního stavu.
Příklad:
Z výše uvedeného příkladu Vzorová tabulka 1 , Odstraňte z tabulky ty záznamy, které mají věk = 20, a poté VRÁTNĚTE změny v databázi zachováním bodů uložení.
Dotaz
SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>
Zde je SP1 první SAVEPOINT vytvořený před vymazáním. V tomto příkladu došlo k jednomu vymazání.
Po opětovném smazání se vytvoří SAVEPOINT SP2.
Výstup

výstup
Proběhlo smazání, předpokládejme, že jste si to rozmysleli a rozhodli jste se VRÁTIT SE na SAVEPOINT, který jste identifikovali jako SP1, který je před smazáním.
smazání je tímto příkazem zrušeno.
Dotaz
ROLLBACK TO SP1; //Rollback completed>
Výstup

výstup
Příkaz RELEASE SAVEPOINT
Tento příkaz se používá k odstranění SAVEPOINT, který jste vytvořili.
Syntax:
UVOLNĚTE SAVEPOINT SAVEPOINT_NAME
Jakmile byl SAVEPOINT uvolněn, již nemůžete použít příkaz ROLLBACK ke zrušení transakcí provedených od posledního SAVEPOINT.
Používá se k zahájení databázové transakce a používá se ke specifikaci charakteristik transakce, která následuje.
Závěr
- Příkazy SQL jsou seskupeny pomocí transakcí.
- Slibují, že buď budou provedeny všechny změny, nebo nebudou žádné.
- Spolehlivost je zajištěna vlastnostmi ACID atomicity, konzistence, izolace a trvanlivosti.
- Zahajte transakci pomocí BEGIN TRANSACTION a dokončete ji pomocí COMMIT nebo ROLLBACK pro dokončení nebo vrácení změn.