Wyzwalacze (triggery) w języku SQL na przykładzie DBMS MySQL

Często podczas wykonywania pewnych operacji na tabelach w bazie danych, takich jak wstawianie, usuwanie czy aktualizowanie rekordów, trzeba zaktualizować inną tabelę i/lub wykonać pewne obliczenia za każdym razem, gdy modyfiujemy dane. Można wtedy używać triggerów, czyli wyzwalaczy.

Triggerem (wyzwalaczem) nazywamy procedurę, któa jest połączona z konkretną tabelą w bazie danych i wywołuje się automatycznie jako reakcja na wcześniej określone zdarzenie występujące w tej tabeli.

Do zdarzeń, które powodują wywołanie triggera, zalicza się:

  • INSERT - dodanie nowego rekordu,
  • UPDATE - zmodyfikowanie istniejącego rekordu,
  • DELETE - usunięcie rekordu z bazy danych.

Trigger może być ustawiony do wywołania przed (BEFORE) lub po (AFTER) zdarzeniu, które go wywołuje.

UWAGA: Triggery są automatycznie aktywowane przez serwer. Nie ma możliwoci zatwierdzenia bądź wycofania transakcji.

Wyzwalacze są obsługiwane obecnie przez następujące DBMS: MSSQL ServerPostgreSQLSyBaseOracleFirebirdSQLiteInterbase SQL, MySQL od wersji 5.0.2.

Przykład użycia wyzwalacza:

Słowo kluczowe NEW odwołuje się do wartości, które zastąpią istniejące wartości. Słowo kluczowe OLD odwołuje się do wartości, które nie były zmienione lub będą zmienione. Operatorów NEWOLD można używać tylko do wyzwalaczy dla UPDATEDELETE.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *