創建存過:
使用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;