Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Wyzwalacz z instrukcją ROLLBACK

Termin Definicja
Wyzwalacz z instrukcją ROLLBACK

Wyzwalacz z instrukcją ROLLBACK wycofuje operację, która go uruchomiła, jeśli nie spełnia zdefiniowanych warunków.

Rola wyzwalacza z instrukcją ROLLBACK w transakcji

Wyzwalacz z instrukcją ROLLBACK jest obiektem bazy danych uruchamianym automatycznie po wystąpieniu określonego zdarzenia, na przykład po próbie wykonania instrukcji INSERT, UPDATE albo DELETE. Jego zadaniem może być sprawdzenie warunku biznesowego lub technicznego i przerwanie operacji, gdy zapisane dane nie spełniają wymaganych reguł. Wycofanie nie wynika wtedy z ręcznej decyzji użytkownika aplikacji, lecz z logiki zapisanej w wyzwalaczu.

ROLLBACK oznacza cofnięcie zmian objętych bieżącą transakcją do jej poprzedniego stanu. Jeżeli transakcja obejmowała kilka instrukcji, zakres wycofania może być większy niż pojedynczy rekord wskazany w zdarzeniu. Z tego powodu wyzwalacz wykonujący pełne wycofanie powinien być projektowany ostrożnie: jego działanie może anulować także wcześniejsze, poprawne operacje wykonane w tej samej transakcji.

Warunek uruchomienia i przebieg wycofania

Typowy scenariusz obejmuje próbę zmiany danych, automatyczne uruchomienie wyzwalacza, odczyt wartości przed i po zmianie oraz ocenę warunku. Przykładem może być kontrola, czy ilość towaru po aktualizacji nie jest ujemna albo czy data zakończenia nie poprzedza daty rozpoczęcia. Jeśli warunek zostanie naruszony, wyzwalacz może przerwać wykonanie instrukcji i doprowadzić do wycofania transakcji. Aplikacja powinna wtedy otrzymać błąd lub inny sygnał, że zapis nie został zaakceptowany.

Znaczenie mają moment i poziom działania wyzwalacza. Wyzwalacz może być związany z operacją wykonywaną przed zmianą danych albo po niej, a niektóre silniki pozwalają także na wyzwalacze działające zamiast standardowej operacji. W zależności od silnika bazy danych instrukcja ROLLBACK może być dozwolona bezpośrednio w wyzwalaczu, ograniczona do określonych typów wyzwalaczy albo zastępowana przez zgłoszenie błędu, które automatycznie anuluje instrukcję. Dlatego składnię i dokładny zakres skutków trzeba sprawdzić w dokumentacji konkretnego systemu bazodanowego.

ROLLBACK a spójność danych i obsługa błędów

Wycofanie transakcji chroni spójność danych, ponieważ nie pozwala pozostawić w bazie częściowo wykonanej operacji. Ma to znaczenie zwłaszcza wtedy, gdy jedna czynność modyfikuje kilka tabel lub wiele wierszy. Jeżeli kontrola wykryje naruszenie reguły, cofnięcie zmian może zapobiec sytuacji, w której stan jednej tabeli wskazuje na operację, której nie odzwierciedlają pozostałe tabele.

Nie każdy warunek powinien jednak być realizowany przez wyzwalacz. Proste reguły, takie jak zakaz wartości pustej, ograniczenie zakresu liczbowego lub unikalność klucza, zwykle lepiej wyrazić za pomocą ograniczeń tabeli, na przykład NOT NULL, CHECK, UNIQUE albo klucza obcego. Takie mechanizmy są czytelniejsze dla osób utrzymujących bazę i mogą być lepiej optymalizowane przez silnik. Wyzwalacz z ROLLBACK ma uzasadnienie wtedy, gdy reguła wymaga procedury lub kontroli zależnej od kilku wartości, których nie da się wygodnie opisać samym ograniczeniem.

Diagnostyka nieudanej operacji z wyzwalaczem

Gdy zapis danych kończy się wycofaniem, należy ustalić, który wyzwalacz został uruchomiony, dla jakiej tabeli i operacji został zdefiniowany oraz jaki warunek doprowadził do przerwania transakcji. Warto sprawdzić definicję wyzwalacza, kolejność wykonywania powiązanych procedur, wartości przekazane w wierszu przed zmianą i po zmianie oraz komunikat zwrócony przez silnik bazy danych. Sam komunikat o odrzuconym zapisie nie zawsze wskazuje, czy przyczyną był wyzwalacz, ograniczenie integralności, blokada czy błąd aplikacji.

Podczas analizy należy również odtworzyć pełny zakres transakcji. Operacja wywołująca wyzwalacz może być częścią większego procesu, w którym aplikacja wykonuje kilka zapisów, a zatwierdzenie następuje dopiero na końcu. W takim przypadku ROLLBACK może usunąć rezultaty wcześniejszych instrukcji, mimo że bezpośrednim powodem błędu była późniejsza zmiana. Pomocne jest wykonanie testu na kopii danych, włączenie rejestrowania błędów dostępnego w danym silniku oraz sprawdzenie, czy aplikacja prawidłowo kończy transakcję po otrzymaniu błędu. Diagnostyka laptopa lub komputera PC może objąć również lokalne narzędzia bazodanowe i aplikacje korzystające z bazy, jeśli problem z wycofywaniem operacji ujawnia się podczas pracy takiego programu.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę