创建触发器以删除大于90天的行

Azn*_*l92 1 mysql mysql-workbench

尝试创建一个触发器,删除任何90天的记录.我使用了stackoverflow中的一个触发器语句,我发现并稍微更改了语句,但在我的MySQL Workbench中,我收到了语法错误.我似乎无法弄清楚出了什么问题.

以下是我的查询:

create trigger user_connections_dump after insert on user_connections 
for each row
begin
   delete from connection_time where Date('2014-06-09') > Date('now','-90 days')
end;
Run Code Online (Sandbox Code Playgroud)

cel*_*rno 8

您的需求看起来更像是事件而不是触发器.

CREATE EVENT IF NOT EXISTS `Clean_Older_Than_90_days_logs`
ON SCHEDULE
  EVERY 1 DAY_HOUR
  COMMENT 'Clean up log connections at 1 AM.'
  DO
    DELETE FROM log
    WHERE log_date < DATE_SUB(NOW(), INTERVAL 90 DAY)
Run Code Online (Sandbox Code Playgroud)

参考: 每天特定时间的MySQL事件调度程序

  • 您如何知道此事件将在凌晨1点触发?应该有类似STARTS STR_TO_DATE(DATE_FORMAT(NOW(),'%​​Y%m%d 0100'),'%Y%m%d%H%i')+间隔1天 (2认同)