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

Python Middle Без компании
Работал ли с триггерами в БД
Ответы
Да, работал. Триггеры — это хранимые процедуры, автоматически выполняемые при определенных событиях (INSERT, UPDATE, DELETE) в таблице. **Пример с SQL (PostgreSQL):** ``` 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(); ``` **Нюансы:** - Триггеры могут усложнить отладку из-за неявного выполнения. - Влияют на производительность, особенно при частых операциях. - В ORM (например, Django) их используют редко, предпочитая сигналы или хуки. Если нужно работать с триггерами в Python, можно использовать библиотеки типа `psycopg2` для выполнения SQL-запросов.