MySql建立存儲過程,並使用事件定時調用

1、使用命令行建立存儲過程的步驟 :參數詳情參考 https://www.mysqlzh.com/mysql

一、模板 sql

delimiter $$ # 設置分隔符爲 '$$' ,mysql默認的語句分隔符爲 ';' ,這樣在後續的 create 到 end 這段代碼都會當作是一條語句來執行

CREATE PROCEDURE 存儲過程名稱(你的參數可選)

BEGIN  # 開始

 // 要寫的code 
 // ...
 
END$$   # 結束
DELIMITER ; #將語句的結束符號恢復爲分號

 注意,建立存儲過程的時候,若是採用命令行的方式,須要先修改命令結束符,將分號改爲其餘的符號 數據庫

二、首先咱們建立一個表 test_table 裏面有主鍵id,用戶名稱username,有某個產品數量 countsspa

DROP TABLE IF EXISTS `test_table`;

CREATE TABLE `test_table` (
  `id` int(11) NOT NULL,
  `counts` int(11) DEFAULT NULL,
    `username` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `test_table`;的意思是若是當前數據庫有test_table這個表就刪除這個表。

三、先插入一條數據命令行

insert into test_table(id,username,counts) VALUES (1,'張三',6);

四、建立一個存儲過程 pro_demo3d

delimiter $$

CREATE PROCEDURE pro_demo(IN p_in int)
BEGIN

 update test_table set counts=counts+p_in where id=1;

END$$ 

DELIMITER ; 

PROCEDURE 是存儲過程的關鍵字 ,pro_demo 是存儲過程名稱 (IN p_in int) 中 IN是輸入int類型的參數 p_int code

五、調用存儲過程blog

call pro_demo(5);

結果是11 事件

 

六、建立一個事件並定時調用存儲過程產品

CREATE EVENT `gov_jm`.`event_demo`
ON SCHEDULE
EVERY '5' SECOND  STARTS '2021-1-12 00:00:01'
DO call pro_demo(3);

EVENT 的是事件關鍵字,gov_jm是當前數據庫名稱,event_demo是該事件的名稱 5秒中調用一次pro_demo()。

6.1開啓定時器

set GLOBAL event_scheduler = 1; 

到這裏,定時任務已經能夠執行了

6.2 查看事件運行狀態

select * from mysql.event

 

6.3開啓或者關閉事件

ALTER EVENT event_demo DISABLE;

ALTER EVENT
event_demo ENABLE;

 

 

2、使用 Navicat for mysql:

建立存儲過程

 

點擊完成後在打開的界面中 begin裏寫你的具體內容

 

建立事件

選擇完成後點擊保存,選擇保存的事件名稱

相關文章
相關標籤/搜索