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:
- Utrzymanie integralności danych: automatyczna weryfikacja lub modyfikacja danych podczas wstawiania/aktualizacji.
- Audyt: rejestrowanie informacji o zmianach danych w osobnej tabeli logów.
- Synchronizacja danych: automatyczna aktualizacja powiązanych tabel.
- 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.