Mysql логирование приложений.Ограничьте количество строк в журнале, удалив старые журналы - PullRequest
0 голосов
/ 14 июня 2019

У меня есть таблица журнала в моей базе данных Mysql для регистрации событий, происходящих в моем приложении.Я хочу ограничить максимальное количество строк в этой таблице, удалив старые события (строки).Перед удалением хочу сохранить (сделать резервную копию) старые данные, которые планируется удалить, во внешний файл.Я хочу запускать этот триггер или событие или все, что раньше делало это каждые 5 дней или около того автоматически.

1 Ответ

0 голосов
/ 14 июня 2019
SET GLOBAL event_scheduler = ON;


delimiter | 
CREATE event cleaner ON schedule every 7 day enable do 
BEGIN 
DECLARE maxtime TIMESTAMP;
DECLARE logCount integer;
SET maxtime = CURRENT_TIMESTAMP - interval 180 day;
SET logCount = (Select count(*) from eventlogs);
DELETE FROM  eventlogs WHERE  eventlogs.TimeStamp < maxtime AND logCount > 1000 ; END 
| delimiter ;
...