Junior
Czym są wyzwalacze w relacyjnej bazie danych?
sobes.tech AI
Odpowiedź od AI
Trigger to specjalny rodzaj procedury składowanej, która jest automatycznie wykonywana w odpowiedzi na określone zdarzenie w tabeli lub widoku bazy danych.
Główne zdarzenia wywołujące trigger:
INSERT: Wstawienie nowego wiersza.UPDATE: Zmiana istniejącego wiersza.DELETE: Usunięcie wiersza.
Triggery mogą się uruchamiać przed (BEFORE) lub po (AFTER) wykonaniu zdarzenia.
Przykłady zastosowania triggerów:
- Automatyczna aktualizacja pól (np. data ostatniej zmiany).
- Sprawdzanie integralności danych.
- Rejestrowanie zmian (logowanie).
- Kaskadowa aktualizacja lub usuwanie powiązanych danych.
-- Przykład tworzenia triggera AFTER INSERT (fikcyjna składnia)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Przykład funkcji wywoływanej przez trigger
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Zalety:
- Centralizacja logiki biznesowej.
- Automatyzacja rutynowych zadań.
- Zwiększenie integralności danych.
Wady:
- Trudności w debugowaniu.
- Potencjalny wpływ na wydajność.
- Złożoność logiki aplikacji, ponieważ część jest przeniesiona na poziom bazy danych.