1. 程式人生 > 其它 >MySQL的儲存過程以及定時任務

MySQL的儲存過程以及定時任務

-- 如果已存在先刪除儲存過程
DROP PROCEDURE IF EXISTS `ADD_CUSTOMERS_DATA`

-- 建立儲存過程
DELIMITER //
CREATE PROCEDURE `ADD_CUSTOMERS_DATA`(IN flag int(1))
BEGIN 
	if flag = 1 then  -- 等於1的時候執行
		INSERT INTO `customers`(`cust_num`, `company`, `cust_rep`, `credit_limit`) VALUES ('1', '2', '3', '4');
	else  
		INSERT INTO `customers`(`cust_num`, `company`, `cust_rep`, `credit_limit`) VALUES ('5', '6', '7', '8');
	end if;
END //

-- 刪除定時任務
drop event day_event;

-- 建立定時任務執行儲存過程
create event day_event
on schedule every 5 second   -- 定時任務執行頻率,這裡是每5秒執行一次
on completion preserve disable
do call ADD_CUSTOMERS_DATA(1);


-- 執行儲存過程
CALL `ADD_CUSTOMERS_DATA`(2);

-- 檢視定時任務是否開啟
show variables like '%event_scheduler%';

-- 顯示的event_scheduler為OFF時用以下命令開啟
set global event_scheduler=1;


-- 開啟定時任務
alter event day_event on completion preserve enable;
-- 關閉定時任務
alter event day_event on completion preserve disable;