MySQL存储过程与定时任务-介绍与实践
来源:互联网 发布:2016年11月网络 编辑:程序博客网 时间:2024/05/16 15:30
什么是存储过程
存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令.
- 存储过程是存储在数据库中的一组SQL语句
- 存储过程是mysql中定义的一个方法
- 可通过调用方法名来调用改方法
- 存储过程关联是一个数据库既一个Schema
存储过程的结构
DROP PROCEDURE IF EXISTS ${proceName}; DELIMITER //CREATE PROCEDURE ${proceName}() ( [${参数类型}] ${参数名} ${参数类型}) BEGIN ${proceBody}END//DELIMITER ;#执行Proc() 存储过程CALL ${proceName}();
如何使用
#定义一个简单的存储过程# 先判断是否有Proc() 这个存储过程,有就drop掉DROP PROCEDURE IF EXISTS Proc; # 创建Proc() 存储过程/* 方法说明-- @author: ${作者}-- @date : ${时间}-- @param : int - ${参数名} - 参数说明-- @return: 具体信息*/DELIMITER //CREATE PROCEDURE Proc() BEGIN SELECT * FROM user;END//DELIMITER ;#执行Proc() 存储过程CALL Proc();
注意:“DELIMITER //”语句的作用是将MYSQL的结束符设置为//,因为MYSQL默认的语句结束符为分号;,为了避免与存储过程
中SQL语句结束符相冲突,需要使用DELIMITER 改变存储过程的结束符,并以“END//”结束存储过程。
存储过程定义完毕之后再使用DELIMITER ;恢复默认结束符。DELIMITER 也可以指定其他符号为结束符!!!!!!!!!!!
存储过程的管理
# 查看所有 存储过程 信息show procedure status;# 删除存储过程drop procedure ${procedureName};# 查看存储过程的内容信息show create procedure ${procedureName};
定时任务的管理
# 定时任务是否开启SHOW VARIABLES LIKE '%event_sche%';# 开启定时任务(开机有效)# 修改配置文件/etc/my.confevent_scheduler=ON# 开启定时任务(重启失效)SET GLOBAL event_scheduler = 1;# 关闭定时任务(重启失效)SET GLOBAL event_scheduler = 0;# 查看所有定时任务信息SHOW EVENTS ;# 定时任务结构# 创建定时任务(示例)CERATE EVENT IF NOT EXISTS ${eventName} ON SCHEDULE every 30 second #每30秒执行一次ON COMPLETION PRESERVE #定时任务完成后,even被设为disable,如果加PRESERVE前加not就会被删除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()); IF weed_index=2 THEN update user set rank_integral=0 where author.id!=0; END IF;END//DELIMITER ;#定时任务(每天执行)CERATE EVENT IF NOT EXISTS e_clear_author_rank_integralON SCHEDULE every 1 DAYON COMPLETION PRESERVEDO CALL p_clear_author_rank_integral();
阅读全文
0 0
- MySQL存储过程与定时任务-介绍与实践
- mysql定时任务与存储过程实例
- Oracle创建定时任务与存储过程
- Oracle定时任务与存储过程
- mysql 存储过程+定时任务
- mysql存储过程 定时任务
- mysql存储过程 定时任务
- Mysql定时任务&存储过程
- linux定时任务 掉mysql 存储过程
- MYSQL 定时任务调用存储过程
- mysql创建定时执行存储过程任务
- 存储过程定时任务
- MySQL与存储过程
- MySQL与存储过程
- MySQL与存储过程
- mysql与存储过程
- MySQL与存储过程
- mysql 存储过程+定时任务实现数据迁移
- Guitar Pro喊你:“双12提前开抢啦”
- Centos7编译JAVA版GDAL
- JVM参数设置、分析
- 解决Centos7下Kubernetes(k8s)部署好之后无法访问dashboard
- Nginx多域名配置
- MySQL存储过程与定时任务-介绍与实践
- oracle 嵌套查询
- LWC 61:739. Daily Temperatures
- 欢迎使用CSDN-markdown编辑器
- OpenGL LIGHTING AND ENVIRONMENT MAPPING WITH GLSL
- Redis_集群介绍
- IntelMediaSDK SampleDecode learning-2
- Spring5学习(二)-spring projects之Spring Batch
- Redis实现消息队列