Hardprocedurestriggers
Что такое stored procedures и triggers?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Stored procedure — сохранённый в БД код, вызываемый по имени. Trigger — процедура, автоматически выполняемая при DML-событии (INSERT/UPDATE/DELETE) на таблице.
-- Процедура (MySQL-синтаксис)
CREATE PROCEDURE get_user(IN uid INT)
BEGIN
SELECT * FROM users WHERE id = uid;
END;
CALL get_user(1);
-- Триггер: автообновление updated_at при UPDATE
CREATE TRIGGER users_set_updated_at
BEFORE UPDATE ON users
FOR EACH ROW
SET NEW.updated_at = NOW();Плюсы процедур: precompiled план, инкапсуляция логики, меньше трафика. Минусы: vendor-specific (PL/pgSQL vs T-SQL vs PL/SQL), сложнее versioning/debug, плохо масштабируется. Триггеры удобны для аудита и денормализации, но создают скрытое поведение и нагрузку.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.