1、首先,需要确保 MySQL 服务器启用了事件调度器(Event Scheduler)。可以通过在 MySQL 命令行界面中执行以下命令来检查:
SHOW VARIABLES LIKE 'event_scheduler';
2、如果该变量的值为 OFF,则需要将其设置为 ON:
SET GLOBAL event_scheduler = ON;
3、然后,创建一个存储过程(Stored Procedure),在其中编写要执行的操作。例如,以下存储过程会在表 normative_documents 中修改指定时间之前的数据状态:
CREATE DEFINER=`root`@`%` PROCEDURE `handleEffect`()
BEGIN
UPDATE normative_documents set ageing = '1' WHERE administration_time <= NOW() and ageing = '2';
END
4、接下来,创建一个事件(Event),指定要执行的存储过程以及执行时间。例如,以下事件会在每天凌晨 1 点执行存储过程 my_procedure():
CREATE EVENT my_event
ON SCHEDULE EVERY 1 DAY
STARTS '2023-04-12 01:00:00'
DO CALL handleEffect();