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

Posted renshengruxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于Navicat 创建mysql存过定时执行存过的主要内容,如果未能解决你的问题,请参考以下文章

MySQL每天自动增加分区

使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

新建存过,查询表结构的方法。

mysql应用实践-Navicat for MySQL工具定时自动备份mysql数据库

python简单的购物系统