| 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 transakcjiWyzwalacz z instrukcją
Warunek uruchomienia i przebieg wycofaniaTypowy 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 a spójność danych i obsługa błędówWycofanie 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 Diagnostyka nieudanej operacji z wyzwalaczemGdy 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 |