Создавал ли триггеры в SQL

«Создавал ли триггеры в SQL» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, создавал. Триггеры в SQL — это хранимые процедуры, автоматически выполняемые при определенных событиях (INSERT, UPDATE, DELETE) в таблице.

Пример создания триггера в PostgreSQL:

CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = NOW();
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER update_timestamp_trigger
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_timestamp();

Этот триггер обновляет поле updated_at при каждом изменении записи в таблице users.

Нюансы:

  • Триггеры могут усложнить отладку (логика скрыта в БД).
  • Избыточные триггеры снижают производительность.
  • В разных СУБД синтаксис может отличаться (например, в MySQL вместо EXECUTE FUNCTION используется EXECUTE PROCEDURE).