Transakcje MySQL

Transakcje MySQL
Transakcja to jednoczesne zbiór funkcji manipulowania zestawami danych i jest wykonywana tak, jakby była to pojedyncza jednostka pracy. Innymi słowy, transakcji nigdy nie może być dokonana, dopóki każdy konkretny proces nie odniesie sukcesu w jednostce. Cały proces zawali się, jeśli jakakolwiek transakcja w procesie ulegnie awarii. Kilka zapytań SQL znajduje się w jednostce, a wszystkie z nich zostaną wykonane razem jako część jej transakcji. Ilekroć transakcja zawiera kilka aktualizacji do bazy danych, a transakcja jest popełniana, wszystkie modyfikacje działają lub wszystkie aktualizacje są odwrócone, gdy operacja jest wycofana.

Właściwości transakcji

Transakcje, często znane w tym terminie KWAS, mają cztery główne nieruchomości ogólne.

  • Atomowość: Gwarantuje to, że wszystkie zadania wewnątrz jednostki roboczej zostały pomyślnie zakończone; w przeciwnym razie, tylko w punkcie awarii, proces jest zakończony, a wcześniejsze procesy są przywracane do ich starego stanu.
  • Konsystencja: Oznacza to, że po wystarczająco zaangażowanym procesie baza danych odpowiednio stwierdza.
  • Izolacja: Pomaga transakcjom współpracować ze sobą i indywidualnie i przejrzysty.
  • Trwałość: To zapewnia, że ​​w przypadku awarii systemu wynik lub konsekwencja zaangażowanej transakcji zachowuje.

Transakcje MySQL Działa:

W MySQL dwa terminy zatwierdzenie i wycofanie są używane przede wszystkim tylko do transakcji MySQL. Transakcje rozpoczynają się tylko z deklaracją rozpoczęcia pracy i zakończenie przez deklaracja zatwierdzenia lub deklaracja wycofania. Instrukcje SQL stanowią większość transakcji wśród stwierdzeń początkowych i zatrzymujących. Taka seria zdarzeń jest niezależnie od określonego języka programowania. Zrobisz odpowiednią ścieżkę w dowolnym języku, którego używasz do budowy aplikacji. Poniższe instrukcje SQL można zaimplementować za pomocą funkcji MySQL Query ().

  • ZACZYNAĆ: Rozpocznij proces lub transakcję, zapewniając instrukcję SQL rozpoczęcia pracy.
  • Dodaj polecenie SQL: Jedno lub jeszcze więcej instrukcji SQL, takich jak wybór, wstaw, aktualizuj i usuń odpowiednio. Potwierdź, nawet jeśli nie ma błędu i wszystko jest zgodne z Twoimi oczekiwaniami.
  • POPEŁNIAĆ: Instrukcja zatwierdzenia musi zostać nałożona po zakończeniu udanej transakcji, tak że modyfikacje wszystkich powiązanych tabel mogą mieć pełny efekt.
  • Rolback: Jeśli wystąpi nieprawidłowa funkcja, rzeczywiście właściwe jest wysłanie instrukcji cofania w celu przywrócenia każdej tabeli określonej w transakcji w kierunku jej poprzedniego stanu.
  • AutoCommit: Domyślnie MySQL stosuje modyfikacje na stałe do bazy danych. Jeśli AutoCommit jest ustawiony na 1 (standard), wówczas zakłada się, że każde zapytanie SQL (niezależnie od tego, czy wewnątrz transakcji) jest zakończoną transakcją i popełniane, dopóki nie zostanie dokończone domyślnie. Aby uniknąć automatycznego zatwierdzenia, ustaw autocommit na 0.

Przykład 01: Tryb autocommit on:

MySQL działa z fazą AutoCommit dozwoloną przez domyślnie. Zapewnia, że ​​MySQL zapisuje zmiany na dysku, aby utworzyć go wiecznie, o ile uruchamiamy zapytanie, które dostosowuje (zmienia) tabelę. Nie jest konieczne odwrócenie ruchu. Spróbujmy z autocommit w trybie. Otwórz swoją powłokę wiersza poleceń MySQL i wpisz hasło, aby rozpocząć.

Weźmy przykład tabeli „książka”, która została utworzona w bazie danych „Dane”. W tej chwili nie wykonaliśmy jeszcze żadnego zapytania.

>> Wybierz * z danych.książka;

Krok 2: Ten proces polega na aktualizacji tabeli „książka”. Zaktualizujmy wartość kolumny „Autor”, w której „nazwa” książki to „dom”. Możesz zobaczyć, jak zmiany zostały pomyślnie wprowadzone.

>> Zaktualizuj dane.Zestaw książki Autor = „Cristian Steward” gdzie nazwa = „Strona główna”;

Rzucając uwagę zaktualizowanej tabeli, mamy zmodyfikowaną wartość autora, w której „nazwa” jest „domem”.

>> Wybierz * z danych.książka;

Użyjmy polecenia wycofania, aby przywrócić zmiany, po prostu dodając poniższe zapytanie. Widać, że zapytanie o wycofanie nie działa tutaj, ponieważ pokazuje, że „0 rzędów dotknęło”.

>> wycofanie;

Możesz nawet zobaczyć stół. Tabela nie ma żadnych zmian po wykonaniu instrukcji wycofania. Oznacza to, że wycofanie nie działa, gdy domyślnie mamy autocommit.

>> Wybierz * z danych.książka;

Przykład 02: Tryb AutoCommit WYŁ.:

Aby przywrócić wprowadzone zmiany, spróbujmy z trybem AutoCommit Off. Korzystając z tego samego przykładu tabeli „Book”, dokonamy na nim pewnych zmian. Będziemy używać Deklaracji Transakcji Start, aby dezaktywować fazę automatycznego wspólnego lub po prostu wpisać poniższe polecenie, aby odłożyć autocommit.

>> Ustaw autocommit = 0;

Powiedzmy, że mamy tę samą tabelę „książka” w naszej bazie danych i musimy wprowadzić w to zmiany. Następnie powróć do tych zmian do starych.

>> Wybierz * z danych.książka;

Jeśli nie wyłączyłeś trybu autocommit, zacznij od zapytań transakcji start w powładzie wiersza poleceń jak poniżej.

>> Rozpocznij transakcję;

Będziemy aktualizować tę samą tabelę za pomocą polecenia aktualizacji, ustawiając „autor” jako „aliana”, w którym „nazwa” książki to „snów”. Zrób to za pomocą poniższego polecenia. Zobaczysz, że zmiany zostaną wprowadzone pomyślnie i skutecznie.

>> Zaktualizuj dane.Book Set Autho = „Aliana” gdzie name = „Dream”;

Sprawdźmy, czy powyższe zapytanie działało idealnie i wprowadziło zmiany w tabeli, czy nie. Możesz sprawdzić zaktualizowaną tabelę za pomocą poniższego polecenia Wybierz jak zawsze.

>> Wybierz * z danych.książka;

Widać, że zapytanie działało świetnie, jak pokazano poniżej.

Teraz jest to kolej na polecenie Rolback, aby wykonać swoją funkcję. Wypróbuj polecenie wycofania w wierszu poleceń, aby cofnąć najnowszą aktualizację do tabeli.

>> wycofanie;

Sprawdźmy, czy zapytanie o wycofanie zostało opracowane tak, jak powinno działać, czy nie. W tym celu musisz ponownie sprawdzić tabelę „książka” za pomocą polecenia „Wybierz” jak zawsze.

>> Wybierz * z danych.książka;

Możesz zobaczyć z poniższego wyjścia, które w końcu działał Rolback. Odwrócił zmiany wprowadzone przez zapytanie aktualizacji w tej tabeli.

Wniosek:

To wszystko dla transakcji mysql. Mam nadzieję, że ten przewodnik pomoże ci wygodnie przeprowadzić transakcje MySQL.