mysql儲存過程

2021-07-28 20:16:07 字數 1877 閱讀 6898

sql語句需要先編譯然後執行,而儲存過程(stored procedure)是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。

儲存過程是可程式設計的函式,在資料庫中建立並儲存,可以由sql語句和控制結構組成。當想要在不同的應用程式或平台上執行相同的函式,或者封裝特定功能時,儲存過程是非常有用的。資料庫中的儲存過程可以看做是對程式設計中物件導向方法的模擬,它允許控制資料的訪問方式。

建立mysql中,建立儲存過程的基本形式如下:

create procedure sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body

proc_parameter中的每個引數由3部分組成。這3部分分別是輸入輸出型別、引數名稱和引數型別。其形式如下:

[ in | out | inout ] param_name type

示例:

create

procedure `procdelhistory`(in p_datefrom datetime)

begin

declare

done

intdefault 0;

declare v_table varchar(100);

declare v_tablespace varchar(100);

declare v_prefix varchar(64);

declare v_keep_day integer(10);

declare partion_control cursor for

select table_name,table_space,prefix,keep_day from partition_tab;

declare exit handler for sqlexception,sqlwarning,not found

insert into alarm_device_t(alarm_oid,alarm_title,occur_time,alarm_content,alarm_level,alarm_type,agent_type)

values('procedure','儲存過程異常',date_format(now(),'%y%m%d%h%i%s'),'呼叫刪除歷史資料過程錯誤','4','儲存過程','100');

declare continue handler for sqlstate '02000'

set done = 1;

open partion_control;

repeat

fetch partion_control into v_table, v_tablespace, v_prefix, v_keep_day;

ifnot done then

select v_table, v_tablespace, v_prefix, v_keep_day;

call remove_history_script_proc(p_datefrom,v_tablespace,v_table,v_keep_day,v_prefix);

endif;

until done end

repeat;

close partion_control;

end

建立了乙個名為procdelhistory的儲存過程,它的作用是從partition_tab表查詢要進行清理的資訊,然後呼叫remove_history_script_proc執行清理。

其中declare exit handler for sqlexception,sqlwarning,not found

定義了自定義異常處理:

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...