Wyzwalacz

Wyzwalacz (ang. trigger) – procedura wykonywana automatycznie jako reakcja na pewne zdarzenia w tabeli bazy danych. Wyzwalacze mogą ograniczać dostęp do pewnych danych, rejestrować zmiany danych lub nadzorować modyfikacje danych.

Systemy baz danych posiadające wyzwalacze: Microsoft SQL Server, PostgreSQL, Sybase, Oracle, Firebird, SQLite, InterBase SQL, MySQL (od wersji 5.0.2), Progress.

Standard języka SQL zdefiniował wyzwalacze dość późno, bo dopiero od wersji 99. Z tego powodu różne systemy bazodanowe opracowały własną składnię tworzenia wyzwalaczy. Dość blisko standardu jest Oracle oraz Firebird, natomiast system bazodanowy Microsoftu używa składni w wielu miejscach różniącej się od wytycznych.

Istnieje kilka typów wyzwalaczy. Wyzwalacze BEFORE - wykonywane przed instrukcją generującą zdarzenie. Wyzwalacze AFTER są wykonane po instrukcji generującej zdarzenie. W niektórych bazach danych są również wyzwalacze INSTEAD OF - są one wykonywane zamiast instrukcji generującej zdarzenie.

Istnieją trzy typowe zdarzenia powodujące wykonanie wyzwalaczy:

  • dopisanie nowego rekordu do bazy danych w wyniku wykonania instrukcji INSERT,
  • zmiana zawartości rekordu w wyniku wykonania instrukcji UPDATE oraz
  • usunięcie rekordu w wyniku wykonania instrukcji DELETE.

Główne cechy wyzwalaczy to:

  • nie mogą mieć parametrów (ale mogą zapisywać dane w tabelach tymczasowych)
  • nie mogą zatwierdzać transakcji (COMMIT) ani ich wycofywać (ROLLBACK), ponieważ działają w kontekście instrukcji SQL, która spowodowała ich uruchomienie
  • mogą generować dodatkowe błędy, jeżeli są źle napisane.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by razib.in