MYSQL定时执行事件
请问怎样实现MYSQL定时事件。比如一个表中。一个字段ID=1怎样让这个字段在1分钟后更新为ID=20且只是执行一次。或者在这个字段上实现各一秒递减一次。ID=ID-1执...
请问怎样实现MYSQL 定时事件。
比如 一个表中。一个字段ID=1 怎样让这个字段 在1分钟后更新为ID=20且只是执行一次。 或者在这个字段上实现 各一秒递减一次。 ID = ID-1执行到ID=0 为止。 这种。 求大佬帮助!! 展开
比如 一个表中。一个字段ID=1 怎样让这个字段 在1分钟后更新为ID=20且只是执行一次。 或者在这个字段上实现 各一秒递减一次。 ID = ID-1执行到ID=0 为止。 这种。 求大佬帮助!! 展开
2个回答
展开全部
mysql要实现定时执行sql语句就要用到Event
具体操作如下:
先看看看event 事件是否开启
show variables like '%sche%';
如没开启,则开启。需要数据库超级权限
set global event_scheduler =1;
创建存储过程 update_a (注:就是你要执行的sql语句)
mysql> create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);
创建一个定时任务:event e_updateA
mysql> create event if not exists e_updateA
-> on schedule every 60 second ---设置60秒执行一次
-> on schedule at date_add(now(),interval 1 minute) ---在一分钟后执行
-> on completion preserve
-> do call update_a(); ---执行update_a()存储过程
创建Event之后,sql语句就定时执行一次。
关闭事件任务
具体操作如下:
先看看看event 事件是否开启
show variables like '%sche%';
如没开启,则开启。需要数据库超级权限
set global event_scheduler =1;
创建存储过程 update_a (注:就是你要执行的sql语句)
mysql> create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);
创建一个定时任务:event e_updateA
mysql> create event if not exists e_updateA
-> on schedule every 60 second ---设置60秒执行一次
-> on schedule at date_add(now(),interval 1 minute) ---在一分钟后执行
-> on completion preserve
-> do call update_a(); ---执行update_a()存储过程
创建Event之后,sql语句就定时执行一次。
关闭事件任务
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询