当记录太多时,mysql清理日志表

时间:2017-01-16 15:53:28

标签: mysql stored-procedures

我有一个带有存储日志的表的mysql数据库。该表每10秒接收一次记录。

我想每周截断我的​​表,这意味着80.000记录之后。我想做一个存储过程,如果有超过80.00,检查每个插入。如果还有更多,表将被截断。 我无法找到如何在SQL中使用if语句。

我知道在crontab中执行一个脚本来连接数据库并每周删除一次表会更好,但是我有约束直接通过SQL存储过程来完成。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用MySQL事件调度程序执行此操作,该事件调度程序基本上类似于cron,但在MySQL服务器中作为线程运行。有了它,您可以安排执行SQL语句或过程。

首先你必须打开它:

SET GLOBAL event_scheduler = ON;

然后你可以创建一个事件:

CREATE EVENT MyEvent
  ON SCHEDULE EVERY 1 WEEK
  DO
    TRUNCATE TABLE MyTable;

在这里阅读更多相关信息: