使用计划任务让数据库在某个时间自动执行一个存储过程
查询事件是否开启
show variables like 'event_scheduler';
没有则开启;
set global event_scheduler='on';
如果看到有--skip-grant-table 这样相关的错误时, 就去配置文件看看是不是有这一行存在, 存在就删掉, 然后语句就生效.
存储过程
delimiter //
create procedure integral_back(IN order_id INTEGER)
BEGIN
declare order_uid int;
declare order_total DECIMAL(8,2);
select uid, total into order_uid, order_total from shop_orders where id = order_id;
update user set integral = integral + order_total where id = order_uid;
END
//
MYSQL计划任务, 在某个时间点执行一次存储过程
drop event if exists integral_back;
create event integral_back
on schedule at '2018-11-22 15:06:30'
do call integral_back(1);
这是每避隔一定时间就执行一次
create event user_trend
ON SCHEDULE EVERY 2 SECOND
ON COMPLETION PRESERVE
do call update_trend;