-- 创建一个事件调度器,确保事件调度器已启用
SET GLOBAL event_scheduler = ON;
-- 示例:创建一个每天凌晨2点清理日志表的事件
DELIMITER //
CREATE EVENT IF NOT EXISTS cleanup_logs
ON SCHEDULE EVERY 1 DAY
STARTS '2023-10-01 02:00:00'
DO
BEGIN
-- 删除30天前的日志记录
DELETE FROM logs WHERE created_at < DATE_SUB(CURDATE(), INTERVAL 30 DAY);
END //
DELIMITER ;
-- 解释说明:
-- 1. `SET GLOBAL event_scheduler = ON;` 启用MySQL事件调度器。
-- 2. `CREATE EVENT IF NOT EXISTS cleanup_logs` 创建一个名为 `cleanup_logs` 的事件,如果该事件不存在的话。
-- 3. `ON SCHEDULE EVERY 1 DAY STARTS '2023-10-01 02:00:00'` 设置事件调度,每1天执行一次,从2023年10月1日凌晨2点开始。
-- 4. `DELETE FROM logs WHERE created_at < DATE_SUB(CURDATE(), INTERVAL 30 DAY);` 删除 `logs` 表中超过30天的记录。
-- 5. `DELIMITER //` 和 `DELIMITER ;` 改变语句结束符,以便在事件定义中使用分号。
上一篇:mysql join on
下一篇:linux mysql 登录
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站