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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM