Триггеры — насколько пользовался, только в кейсе с историей или были ещё случаи?

В практике Golang часто использую триггеры на уровне базы данных, например, в PostgreSQL или MySQL, чтобы автоматически выполнять действия при изменении данных.

Короткий ответ

Что ответить на собеседовании

В практике Golang часто использую триггеры на уровне базы данных, например, в PostgreSQL или MySQL, чтобы автоматически выполнять действия при изменении данных. В самом Go триггеры как таковые отсутствуют, но можно реализовать похожую логику через middleware или хуки в ORM.

Подробный разбор

Ответ с пояснениями

В практике Golang часто использую триггеры на уровне базы данных, например, в PostgreSQL или MySQL, чтобы автоматически выполнять действия при изменении данных. В самом Go триггеры как таковые отсутствуют, но можно реализовать похожую логику через middleware или хуки в ORM.

Пример: в PostgreSQL можно создать триггер, который при вставке записи в таблицу логирует событие или обновляет другую таблицу.

CREATE FUNCTION log_insert() RETURNS trigger AS $$
BEGIN
  INSERT INTO audit_log(table_name, operation, changed_at) VALUES (TG_TABLE_NAME, 'INSERT', now());
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER trg_after_insert
AFTER INSERT ON users
FOR EACH ROW EXECUTE FUNCTION log_insert();

В Go можно реагировать на события через ORM, например, GORM поддерживает хуки BeforeCreate, AfterCreate и т.п., что позволяет реализовать логику, похожую на триггеры, но на уровне приложения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку