Установка триггера в MySQL для отслеживания изменений
Материал из BiTel WiKi
Версия от 08:29, 8 октября 2009; Admin (Обсуждение | вклад)
Временами возникает проблема непонятных изменений в БД биллинга. Очень хорошее средство для локализации и отладки проблемы - установить на изменяющуюся таблицу триггер, который будет логировать в отдельную таблицу время изменения. Установка точного времени изменения очень облегчает задачу поиска причины изменения. Для примера, триггер, отслеживающий вставку данных в таблицу статусов подписки модуля CerberCrypt и логирующий изменения в отдельную таблицу events_log_18_insert.
CREATE TABLE `events_log_18_insert` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `create_date` DATETIME NOT NULL , `cpid` INT NOT NULL , `status` SMALLINT NOT NULL ); DELIMITER | CREATE TRIGGER `event_logger` AFTER INSERT ON `event_log_18` FOR EACH ROW BEGIN INSERT INTO events_log_18_insert (create_date, cpid, STATUS) VALUES (now(), new.cpid, new.type); END; | DELIMITER;