创建存过:
使用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;