MySQL儲存過程與定時任務 介紹與實踐

2021-08-11 19:27:02 字數 2551 閱讀 8636

儲存例程是儲存在資料庫伺服器中的一組sql語句,通過在查詢中呼叫乙個指定的名稱來執行這些sql語句命令.

儲存過程是儲存在資料庫中的一組sql語句

儲存過程是mysql中定義的乙個方法

可通過呼叫方法名來呼叫改方法

儲存過程關聯是乙個資料庫既乙個schema

儲存過程的結構

drop procedure

ifexists $;

delimiter //

create

procedure $

()(

[$] $ $

)begin

$end//

delimiter ;

#執行proc() 儲存過程

call $();

#定義乙個簡單的儲存過程

# 先判斷是否有proc() 這個儲存過程,有就drop掉

drop

procedure

ifexists proc;

# 建立proc() 儲存過程

/* 方法說明

-- @author: $

-- @date : $

-- @param : int - $ - 引數說明

-- @return: 具體資訊

*/delimiter //

create

procedure proc()

begin

select * from

user;

end//

delimiter ;

#執行proc() 儲存過程

call proc();

注意:「delimiter //」語句的作用是將mysql的結束符設定為//,因為mysql預設的語句結束符為分號;,為了避免與儲存過程

中sql語句結束符相衝突,需要使用delimiter 改變儲存過程的結束符,並以「end//」結束儲存過程。

儲存過程定義完畢之後再使用delimiter ;恢復預設結束符。delimiter 也可以指定其他符號為結束符!!!!!!!!!!!

# 檢視所有 儲存過程 資訊

show procedure

status;

# 刪除儲存過程

drop procedure $;

# 檢視儲存過程的內容資訊

show create

procedure $;

# 定時任務是否開啟

show variables like '%event_sche%';

# 開啟定時任務(開機有效)

# 修改配置檔案/etc/my.conf

event_scheduler=on

# 開啟定時任務(重啟失效)

set global event_scheduler = 1;

# 關閉定時任務(重啟失效)

set global event_scheduler = 0;

# 檢視所有定時任務資訊

show events ;

# 定時任務結構

# 建立定時任務(示例)

cerate event if not exists $

on schedule every 30 second #每30秒執行一次

on completion preserve #定時任務完成後,even被設為disable,如果加preserve前加not就會被刪除

do call $();

# 啟動某個定時任務

alter event $ enable;

# 關閉某個定時任務

alter event $ disable;

# 刪除定時任務

drop event if exists $;

每到星期一執行一次儲存過程

# 儲存過程(判斷今天是不是星期一)

delimiter //

create

procedure

p_clear_author_rank_integral

()begin

declare

weed_index

intdefault 0;

set weed_index = dayofweek(now());

if weed_index=2

then

update user set rank_integral=0

where author.id!=0;

endif;end

//delimiter ;

#定時任務(每天執行)

cerate event

ifnot exists e_clear_author_rank_integral

on schedule every 1 day

on completion preserve

do call p_clear_author_rank_integral();

mysql 儲存過程 定時任務

建立儲存過程 create procedure if not exists test begin insert into test.test time values curdate end set global event scheduler 0 設定任務器 開關 1開 0關 show variab...

mysql定時任務與儲存過程例項

檢視event是否開啟 show variables like event sche 將事件計畫開啟 set global event scheduler 1 將事件計畫關閉 set global event scheduler 0 關閉事件任務 alter event eventname on c...

MySQL 建立儲存過程及定時任務

建立定時任務名為 event csdn 2019 01 01 00 00 00 起每10s 執行 create event if not exists event csdn on schedule every 10 second starts timestamp 2019 01 01 00 00 0...