logo

TRANSAKCJE SQL

Transakcje grupują zestaw zadań w jedną jednostkę wykonawczą. Każda transakcja rozpoczyna się od określonego zadania i kończy się, gdy wszystkie zadania w grupie zostaną pomyślnie zakończone. Jeśli którekolwiek z zadań zakończy się niepowodzeniem, transakcja zakończy się niepowodzeniem. Dlatego transakcja ma tylko dwa wyniki: powodzenie Lub awaria .

Przykład transakcji przelewu 150 dolarów z konta A na konto B:

1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>

Niekompletne kroki skutkują niepowodzeniem transakcji. Transakcja bazy danych z definicji musi być niepodzielna, spójna, izolowana i trwała.
Są to powszechnie znane tzw KWAS nieruchomości. Te właściwości mogą zapewnić równoczesne wykonanie wielu transakcji bez konfliktów.



Właściwości transakcji

  • Atomowość: Wynik transakcji może zakończyć się całkowitym sukcesem lub całkowitym niepowodzeniem. Cała transakcja musi zostać wycofana, jeśli jedna jej część zakończy się niepowodzeniem.
  • Konsystencja: Transakcje zachowują ograniczenia integralności, przenosząc bazę danych z jednego prawidłowego stanu do drugiego.
  • Izolacja: Jednoczesne transakcje są od siebie izolowane, co zapewnia dokładność danych.
  • Trwałość: Po zatwierdzeniu transakcji jej modyfikacje obowiązują nawet w przypadku awarii systemu.

Jak zaimplementować polecenie kontroli transakcji przy użyciu SQL?

Poniższe polecenia służą do kontrolowania transakcji. Należy zauważyć, że tych instrukcji nie można używać podczas tworzenia tabel i są one używane wyłącznie z poleceniami DML, takimi jak: WSTAWIĆ , AKTUALIZACJA , I USUWAĆ .

ROZPOCZNIJ TRANSAKCJĘ Polecenie

Wskazuje punkt początkowy transakcji jawnej lub lokalnej.

Składnia:

ROZPOCZNIJ TRANSAKCJĘ nazwa_transakcji ;

USTAW TRANSAKCJĘ Polecenie

Wartości właściwości bieżącej transakcji, takie jak poziom izolacji transakcji i tryb dostępu, ustawia się za pomocą instrukcji SET TRANSACTION w MySQL.

Składnia:

USTAW TRANSAKCJĘ [ CZYTAJ ZAPISZ | TYLKO CZYTAĆ ];

Polecenie ZATWIERDŹ

Jeśli wszystko jest w porządku ze wszystkimi wyciągami w ramach jednej transakcji, wszystkie zmiany są rejestrowane łącznie w bazie danych tzw zaangażowany . Polecenie COMMIT zapisuje w bazie danych wszystkie transakcje od ostatniego polecenia COMMIT lub ROLLBACK.

tablice Java

Składnia:

POPEŁNIAĆ;

Przykład:

Przykładowa tabela 1

wyjście

wyjście

Poniżej znajduje się przykład, który usuwałby z tabeli te rekordy, które mają wiek = 20, a następnie zatwierdzał zmiany w bazie danych.

Zapytanie

DELETE FROM Student WHERE AGE = 20; COMMIT;>

Wyjście

Zatem dwa wiersze z tabeli zostaną usunięte, a instrukcja SELECT będzie wyglądać następująco:

wyjątek rzuca java
wyjście

wyjście

POWRÓT, polecenie

Jeśli wystąpi jakikolwiek błąd w którejkolwiek z grupowanych instrukcji SQL, należy przerwać wszystkie zmiany. Proces odwracania zmian nazywa się wycofanie . Tego polecenia można użyć tylko do cofnięcia transakcji od chwili wydania ostatniego polecenia COMMIT lub ROLLBACK.

Składnia polecenia ROLLBACK:

WYCOFANIE;

Przykład:

Z powyższego przykładu Przykładowa tabela 1 ,
Usuń te rekordy z tabeli, które mają wiek = 20, a następnie COFNIJ zmiany w bazie danych.

Zapytanie

DELETE FROM Student WHERE AGE = 20; ROLLBACK;>

Wyjście

wyjście

wyjście

Polecenie ZAPISZPUNKT

PUNKT ZAPISU tworzy punkty w obrębie grup transakcji, w których należy WYCOFAĆ.
SAVEPOINT to punkt transakcji, w którym można cofnąć transakcję do określonego punktu bez wycofywania całej transakcji.

Składnia polecenia Zapisz punkt:

PUNKT ZAPISU NAZWA PUNKTU ZAPISU;

To polecenie jest używane tylko przy tworzeniu SAVEPOINT wśród wszystkich transakcji.
Ogólnie rzecz biorąc, ROLLBACK służy do cofania grupy transakcji.

Składnia przywracania polecenia Savepoint:

POWRÓT DO SAVEPOINT_NAME;

zastąpienie metody Java

w dowolnym momencie możesz WYCOFĄĆ się do dowolnego PUNKTU ZAPISU, aby przywrócić odpowiednie dane do pierwotnego stanu.

Przykład:

Z powyższego przykładu Przykładowa tabela 1 , Usuń te rekordy z tabeli, które mają wiek = 20, a następnie COFNIJ zmiany w bazie danych, zachowując punkty zapisu.

Zapytanie

SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>

Tutaj SP1 jest pierwszym SAVEPOINT utworzonym przed usunięciem. W tym przykładzie miało miejsce jedno usunięcie.
Po usunięciu ponownie tworzony jest SAVEPOINT SP2.

Wyjście

wyjście

wyjście

Nastąpiło usunięcie, załóżmy, że zmieniłeś zdanie i zdecydowałeś się WYCOFAĆ do punktu SAVEPOINT, który zidentyfikowałeś jako SP1, który jest przed usunięciem.
usunięcie jest cofane przez to oświadczenie.

Zapytanie

ROLLBACK TO SP1; //Rollback completed>

Wyjście

wyjście

wyjście

ZWOLNIJ PUNKT ZAPISANIA Polecenie

To polecenie służy do usuwania utworzonego punktu SAVEPOINT.

Składnia:

ZWOLNIJ PUNKT SAVEPOINT SAVEPOINT_NAME

Po zwolnieniu SAVEPOINT nie można już używać polecenia ROLLBACK do cofania transakcji wykonanych od ostatniego SAVEPOINT.
Służy do inicjowania transakcji w bazie danych i służy do określenia charakterystyki następującej po niej transakcji.

Wniosek

  • Instrukcje SQL są grupowane za pomocą transakcji.
  • Obiecują, że albo zostaną wprowadzone wszystkie zmiany, albo żadne.
  • Niezawodność zapewniają cechy ACID, takie jak atomowość, konsystencja, izolacja i trwałość.
  • Rozpocznij transakcję za pomocą BEGIN TRANSACTION i zakończ ją za pomocą COMMIT lub ROLLBACK, aby zakończyć lub cofnąć zmiany.