MySQL MariaDB

Transakce MySQL

Transakce MySQL
Transakce je souběžná sbírka funkcí pro manipulaci s datovými sadami a provádí se, jako by se jednalo o jedinou entitu práce. Jinými slovy, transakce nemůže být nikdy provedena, dokud nebude v jednotce úspěšný každý konkrétní proces. Celý proces se zhroutí, pokud dojde k chybě jakékoli transakce uvnitř procesu. Několik dotazů SQL je spojeno do jednotky a všechny budou provedeny společně jako část její transakce. Kdykoli transakce obsahuje několik aktualizací databáze a transakce je potvrzena, všechny úpravy fungují nebo jsou všechny aktualizace zrušeny, kdykoli je operace vrácena zpět.

Vlastnosti transakce

Transakce, často známé pod pojmem KYSELINA, mají čtyři hlavní obecné vlastnosti.

Pracovní transakce MySQL:

V rámci MySQL se tyto dva pojmy, Commit a Rollback, používají primárně pouze pro MySQL transakce. Transakce začínají pouze deklarací BEGIN WORK a končí buď deklarací COMMIT, nebo deklarací ROLLBACK. Pokyny SQL tvoří většinu transakce mezi počátečními a koncovými příkazy. Taková řada událostí je bez ohledu na použitý konkrétní programovací jazyk. Vytvoříte vhodnou cestu v jakémkoli jazyce, který používáte k sestavení aplikace. Níže uvedené příkazy SQL lze implementovat pomocí funkce mysql query ().

Příklad 01: Zapnutý režim AutoCommit:

MySQL pracuje s fází Autocommit povolenou ve výchozím nastavení. Zajišťuje, že MySQL ukládá změny na disku, aby je vytvořil trvale, pokud spustíme dotaz, který upraví (změní) tabulku. Tah není nutné vrátit zpět. Zkusme to v režimu AUTOCOMMIT. Otevřete prostředí příkazového řádku MySQL a začněte zadáním hesla.

Vezměte příklad tabulky „knihy“, která byla vytvořena v databázi „data“. Právě teď jsme na něj zatím neprovedli žádný dotaz.

>> SELECT * FROM data.rezervovat;

Krok 2: Tento proces má aktualizovat „knihu“ tabulky. Aktualizujme hodnotu sloupce „Autor“, kde „Název“ knihy je „Domov“. Uvidíte, že změny byly úspěšně provedeny.

>> AKTUALIZACE dat.kniha SET Autor = 'Cristian Steward' KDE Jméno = 'Domov';

Při pohledu na aktualizovanou tabulku máme upravenou hodnotu autora, kde 'name' je 'Home'.

>> SELECT * FROM data.rezervovat;

Pojďme pomocí příkazu ROLLBACK vrátit změny jednoduše přidáním níže uvedeného dotazu. Vidíte, že ROLLBACK dotaz zde nefunguje, protože ukazuje, že „ovlivněno 0 řádků“.

>> ROLLBACK;

Můžete dokonce vidět i tabulku. Tabulka zatím nemá žádné změny po provedení příkazu ROLLBACK. To znamená, že ROLLBACK nefunguje, když máme ve výchozím nastavení zapnutý AUTOCOMMIT.

>> SELECT * FROM data.rezervovat;

Příklad 02: Režim AutoCommit vypnutý:

Chcete-li vrátit provedené změny, zkusme to s vypnutým režimem AUTOCOMMIT. Na stejném příkladu tabulky „kniha“ provedeme několik změn. Budeme používat deklaraci START TRANSACTION k deaktivaci fáze automatického potvrzení nebo jednoduše zadejte následující příkaz k vypnutí AUTOCOMMIT.

>> SET AUTOCOMMIT = 0;

Řekněme, že máme ve své databázi stejnou „knihu“ tabulky a musíme v ní provést změny. Poté tyto změny znovu vraťte ke starým.

>> SELECT * FROM data.rezervovat;

Pokud jste nevypnuli režim AUTOCOMMIT, začněte s dotazem START TRANSACTION v prostředí příkazového řádku, jak je uvedeno níže.

>> ZAČNĚTE TRANSAKCI;

Aktualizujeme stejnou tabulku pomocí příkazu UPDATE nastavením „Autor“ na „Aliana“, kde „Název“ knihy bude „Sen“. Udělejte to pomocí níže uvedeného příkazu. Uvidíte, že změny budou provedeny úspěšně a efektivně.

>> AKTUALIZACE dat.kniha SET Autho = 'Aliana' WHERE Name = 'Dream';

Pojďme zkontrolovat, zda výše uvedený dotaz fungoval perfektně a provedl změny v tabulce nebo ne. Aktualizovanou tabulku můžete zkontrolovat pomocí níže uvedeného příkazu VÝBĚR jako vždy.

>> SELECT * FROM data.rezervovat;

Můžete vidět, že dotaz fungoval skvěle, jak je znázorněno níže.

Nyní je řada na příkazu ROLLBACK k provedení jeho funkce. Zkuste příkaz ROLLBACK v příkazovém řádku vrátit poslední aktualizaci do tabulky.

>> ROLLBACK;

Pojďme zkontrolovat, zda dotaz ROLLBACK byl zpracován tak, jak by měl fungovat, nebo ne. K tomu musíte znovu zkontrolovat tabulku „rezervovat“ pomocí příkazu „VYBRAT“ jako vždy.

>> SELECT * FROM data.rezervovat;

Z níže uvedeného výstupu můžete vidět, že ROLLBACK konečně fungoval. Vrátila změny provedené dotazem UPDATE v této tabulce.

Závěr:

To je vše pro transakce MySQL. Doufám, že vám tento průvodce pomůže pohodlně provádět transakce MySQL.

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...