Sobes.tech
Junior

Czym jest trigger?

sobes.tech AI

Odpowiedź od AI

Trigger jest specjalną procedurą przechowywaną w bazie danych, która jest automatycznie wykonywana po wystąpieniu określonego zdarzenia.

Zdarzenia wywołujące triggery zazwyczaj obejmują:

  • INSERT: dodanie nowych wierszy do tabeli.
  • UPDATE: zmiana istniejących wierszy w tabeli.
  • DELETE: usunięcie wierszy z tabeli.

Triggery mogą być wywoływane w różnym czasie względem zdarzenia:

  • BEFORE: przed wykonaniem zdarzenia.
  • AFTER: po wykonaniu zdarzenia.
  • INSTEAD OF: zamiast wykonania zdarzenia (często używane z widokami).

Przykłady użycia triggerów:

  1. Utrzymanie integralności danych: automatyczna weryfikacja lub modyfikacja danych podczas wstawiania/aktualizacji.
  2. Audyt: rejestrowanie informacji o zmianach danych w osobnej tabeli logów.
  3. Synchronizacja danych: automatyczna aktualizacja powiązanych tabel.
  4. Wykonywanie złożonych reguł biznesowych: inicjowanie dodatkowych działań w określonych warunkach.

Triggery są definiowane na poziomie tabeli i mogą odwoływać się do starych i nowych wartości zmienionej linii.

-- Przykład składni (SQL)
CREATE TRIGGER audit_log
AFTER INSERT ON users
FOR EACH ROW
BEGIN
    INSERT INTO audit (user_id, action, timestamp)
    VALUES (NEW.id, 'insert', NOW());
END;

Ważne jest ostrożne korzystanie z triggerów, ponieważ mogą one utrudniać debugowanie i wpływać na wydajność bazy danych.