- 储存过程的使用
- mysql定时任务使用
1、储存过程创建与使用
- sql查看当前库所有创建的储存过程,或者借助工具在函数项中查看
-- 查看当前库中的储存过程
select * from mysql.proc where db = '库名' AND `type` = 'PROCEDURE'
- 创建储存过程。CALL调起执行储存过程函数
-- 自定义界定符号的写法示例
-- 储存过程存在则删除
DROP PROCEDURE IF EXISTS procedure_name;
DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
-- 执行的sql
SELECT NOW();
END//
DELIMITER;
-- 执行储存过程
CALL procedure_name();
-- 使用mysql默认界定符号写法示例
DROP PROCEDURE IF EXISTS procedure_name;
CREATE PROCEDURE procedure_name()
BEGIN
SELECT NOW();
END;
CALL procedure_name()
- DELIMITER 分界符
mysql默认结束符号是“;”分号,自定义界定符的储存过程写法,是为了将储存过程中sql的;号与mysql识别执行的界定符区分开。
mysql5.0版本多sql储存过程定义时,不重定义界定符会报错(未验证),mysql 5.7版本中,自定义界定符与否均可以定义多sql储存过程(已验证)。
2、定时器创建与使用
- mysql定时任务使用相关sql语句
-- 查看mysql是否开启定时任务功能
SHOW VARIABLES LIKE '%event_sche%';
-- 开启定时任务
SET GLOBAL event_scheduler = 1;
-- 关闭定时任务
SET GLOBAL event_scheduler = 0;
-- 查看所有的定时任务
select * from information_schema.`EVENTS`;
- 定时任务创建,也可以借助Navicat工具创建(事件项)
DROP EVENT IF EXISTS event_name;
CREATE EVENT event_name
-- 每五秒执行一次
ON SCHEDULE EVERY 5 SECOND
DO -- 需要定时执行的sql,这里是调用储存过程
CALL procedure_name();