mysql存储过程和定时调用

1、创建存储过程

1 create procedure proc_name()
2 begin
3 sql;
4 end

sql为定时值执行的代码,比如,定时向表里插入当前时间:INSERT into table(times) VALUES(NOW());;然后通过事件调度来定时执行该存储过程。

2、创建触发事件

1 create event if not exists event_name
2 on schedule every 30 second
3 on completion preserve
4 do call proc_name()

创建一个事件调度,在该事件调度完成后,每30秒执行调用存储过程一次。若只想让存储过程在某个时间只执行一次,则把preserve改为not preserve。

3、查看event是否开启

1 show variables like %sche%

4、将事件计划开启

1 set global event_scheduler=1;

全局事件调度开关,1为开,0为关。

5、开启事件任务

1 alter event event_name on completion preserve enable;

打开指定的事件调度开关

6、关闭事件任务

1 alter event event_name on completion preserve disable;

关闭指定的事件调度开关

7、查看数据库所有的存储过程

1 SELECT * FROM mysql.proc

查看数据库的所有存储过程,在mysql安装完后,就默认安装有一个叫mysql的数据库,里面有一个表叫proc,通过查看这个表也可以查询数据库的所有存储过程。

8、查看数据库里所有的存储过程+内容

1 show procedure status;

9、查看存储过程或函数的创建代码

1 show create procedure you_proc_name;

10、删除存储过程

1 drop procedure proc_name;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。