什么是存储过程
存储例程是存储在数据库服务器上的一组sql语句,这些语句通过在查询中调用指定的名称来执行。
存储过程是存储在数据库中的一组SQL语句
存储过程是mysql中定义的方法
可以通过调用方法名称来调用更改的方法
存储过程关联既是数据库又是模式
存储过程的结构
DROP PROCEDURE IF EXISTS $ {proceName} ;分隔符//创建过程$ {proceName} ()( [$ {参数类型}] $ {参数名称} $ {参数类型})BEGIN
$ {proceBody} END //
如果你在学习C/C++的过程中遇到了问题,可以来加入小编的企鹅圈问小编哦~小编很热情的(●’◡’●)
DELIMITER ;#执行Proc()存储过程CALL $ {proceName}();
如何使用
#定义一个简单的存储过程#首先确定是否有一个Proc()存储过程,然后滴落DROP PROCEDURE IF EXISTS PROC;#创建Proc()存储过程/ *方法说明-@author:$ {Author}-@date:$ {Time}-@param:int-$ {参数名称}-参数说明-@return:具体信息* /分隔符//CREATE PROCEDURE PROC()
BEGIN SELECT * FROM用户; 结束//定界符;#执行Proc()存储过程调用Proc();
请注意,“ DELIMITER //”语句的目的是将MYSQL的终止符设置为//,因为MYSQL的默认语句终止符是分号。为避免与存储过程联系,
冲突的SQL语句终止符需要DELIMITER更改存储过程的终止符并以END //结束存储过程。
定义存储过程后,将使用DelIMITER;恢复默认终止符。DELIMITER也可以将其他符号指定为终止符!
存储过程的管理
#查看所有存储过程信息显示程序状态;#删除存储过程删除过程$ {procedureName} ;#查看存储过程的内容信息显示创建过程$ {procedureName};
定时任务管理
#定时任务是否开启显示变量,例如'%event_sche%';#打开计时器任务(开始生效)#修改Profile / etc / my.conf
event_scheduler = ON #打开计时器任务(重新启动失败)SET GLOBAL event_scheduler = 1 ;#关闭计时器任务(重新启动失败)SET GLOBAL event_scheduler = 0 ;
#查看所有定时任务信息演出活动;#定时任务结构
#创建一个定时任务(例如)创造学习EVENT IF NOT EXISTS $ {eventName的} ON每隔SCHEDULE 30第二个
#Execute每30秒开竣工PRESERVE #Eve在定时器任务后,设置为禁用完成后,如果维护的是之前添加是不删除DO CALL $ {procedureName}();
#启动一个定时任务ALTER EVENT $ {evenName} ENABLE; #关闭定时任务ALTER EVENT $ {evenName} DISABLE; #删除定时任务DROP EVENT IF EXISTS $ {evenName} ;
简单的例子
每个星期一执行存储过程
#存储过程(确定今天是否是星期一)DELIMITER // CREATE PROCEDURE p_clear_author_rank_integral ()BEGIN DECLARE weed_index INT DEFAULT 0; SET weed_index = dayofweek(now());
如果weed_index = 2然后
更新用户集rank_integral = 0 ,其中author.id!= 0 ;
结束IF ;结束//定界符;#定时任务(每天)蜡膏EVENT IF NOT EXISTS e_clear_author_rank_integral
ON SCHEDULE每1天ON COMPLETION PRESERVE
DO CALL p_clear_author_rank_integral();