Встречается на собеседованиях • сегодня

Работал ли с триггерами в БД

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

Пример с SQL (PostgreSQL):

sql
CREATE OR REPLACE FUNCTION log_changes()
RETURNS TRIGGER AS $$
BEGIN
    IF TG_OP = 'INSERT' THEN
        INSERT INTO audit_log (action, table_name, record_id, change_time)
        VALUES ('INSERT', TG_TABLE_NAME, NEW.id, NOW());
    ELSIF TG_OP = 'UPDATE' THEN
        INSERT INTO audit_log (action, table_name, record_id, change_time)
        VALUES ('UPDATE', TG_TABLE_NAME, NEW.id, NOW());
    END IF;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER track_changes
AFTER INSERT OR UPDATE ON users
FOR EACH ROW EXECUTE FUNCTION log_changes();

text

**Нюансы:**  
- Триггеры могут усложнить отладку из-за неявного выполнения.  
- Влияют на производительность, особенно при частых операциях.  
- В ORM (например, Django) их используют редко, предпочитая сигналы или хуки.  

Если нужно работать с триггерами в Python, можно использовать библиотеки типа `psycopg2` для выполнения SQL-запросов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы