创建存过:
使用Navicat for MySQL工具创建存储过程步骤:
1. 新建函数(选择函数标签 -> 点击新建函数):
2.输入函数的参数个数、参数名、参数类型等:
3.编写存储过程:
代码如下:
Sql代码
- BEGIN
- /* 定义变量 */
- declare tmp0 VARCHAR(1000);
- declare tmp1 VARCHAR(1000);
- declare done int default -1; -- 用于控制循环是否结束
- /* 声明游标 */
- declare myCursor cursor for select cell_0,cell_1 from t_test;
- /* 当游标到达尾部时,mysql自动设置done=1 */
- declare continue handler for not found set done=1;
- /* 打开游标 */
- open myCursor;
- /* 循环开始 */
- myLoop: LOOP
- /* 移动游标并赋值 */
- fetch myCursor into tmp0,tmp1;
- -- 游标到达尾部,退出循环
- if done = 1 then
- leave myLoop;
- end if;
- /* do something */
- -- 循环输出信息
- select tmp0,tmp1 ;
- -- 可以加入insert,update等语句
- /* 循环结束 */
- end loop myLoop;
- /* 关闭游标 */
- close myCursor;
- END
4.保存(请输入合法名称):
5.运行存储过程(在结果1,2,3...中可以查询输出信息):
设置定时计划执行存储过程:
1.事件定义填写
2.事件计划设置
3.保存
点击上方保存即可
常见问题:
navicat for mysql 创建事件的时候,保存时弹出提示“事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。
解决方法:
检查一下MYSQL的和系统变量 event_scheduler
show variables like 'event_scheduler ';
从你的描述看来应该是没有打开。 set global event_scheduler=on; 打开这个设置。
打开的event_schedulerSQL:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1
关闭的event_schedulerSQL:
SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;