欢迎来到测试Test-Admin的博客

本来以为,学习了这么多年,我已经洞察了世界,真相却不过是蒙蔽了自己。原来世界如此精彩,而我却一无所知。昨天已经成为过去,明天还是一个未知,但今天是一个礼物。珍惜自己,把握每一寸光阴!

Navicat 创建mysql存过、定时执行存过

 

创建存过:

使用Navicat for MySQL工具创建存储过程步骤:

1. 新建函数(选择函数标签 -> 点击新建函数):

 

2.输入函数的参数个数、参数名、参数类型等:

3.编写存储过程:

 代码如下:

Sql代码  

  1. BEGIN   
  2. /* 定义变量 */  
  3. declare tmp0 VARCHAR(1000);  
  4. declare tmp1 VARCHAR(1000);  
  5. declare done int default -1;  -- 用于控制循环是否结束  
  6. /* 声明游标 */    
  7. declare myCursor cursor for select cell_0,cell_1 from t_test;    
  8. /* 当游标到达尾部时,mysql自动设置done=1 */       
  9. declare continue handler for not found set done=1;    
  10. /* 打开游标 */    
  11. open myCursor;    
  12. /* 循环开始 */    
  13. myLoop: LOOP    
  14. /* 移动游标并赋值 */    
  15. fetch myCursor into tmp0,tmp1;    
  16. -- 游标到达尾部,退出循环  
  17. if done = 1 then     
  18. leave myLoop;    
  19. end if;    
  20. /* do something */    
  21. -- 循环输出信息  
  22. select tmp0,tmp1 ;  
  23. -- 可以加入insert,update等语句  
  24. /* 循环结束 */    
  25. end loop myLoop;    
  26. /* 关闭游标 */    
  27. close myCursor;    
  28. 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;

 

posted on 2019-06-27 16:01  Test-Admin  阅读(2122)  评论(0编辑  收藏  举报

导航