Этот вопрос проверяет знание триггеров и их роли в автоматизации действий при изменении данных.
Триггер — это специальная функция, которая автоматически выполняется при определенных событиях в таблице, например, при вставке, обновлении или удалении данных. Они используются для проверки данных, поддержания целостности или логирования изменений.
Триггеры — это механизм PostgreSQL для автоматического выполнения действий при определенных событиях, связанных с таблицами. Триггер может срабатывать до или после события (BEFORE или AFTER), а также для каждой строки (FOR EACH ROW) или для всего запроса (FOR EACH STATEMENT).
Создаем функцию, выполняемую триггером:
CREATE FUNCTION log_changes() RETURNS trigger AS $$
BEGIN
INSERT INTO log_table(action, table_name, changed_data)
VALUES (TG_OP, TG_TABLE_NAME, row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;Создаем сам триггер:
CREATE TRIGGER after_update_trigger
AFTER UPDATE ON employees
FOR EACH ROW
EXECUTE FUNCTION log_changes();Применение:
Автоматизация проверки целостности данных.
Логирование изменений.
Выполнение сложных действий на уровне базы данных.