mysql儲存過程

2021-08-16 22:34:13 字數 1683 閱讀 7728

一、mysql儲存過程的一般寫法:

1建立儲存過程

create

[definer = ]

procedure sp_name ([proc_parameter[,...]])

[characteristic ...] routine_body

proc_parameter:

[ in | out | inout ] param_name type

characteristic:

comment 'string'

| language sql

| [not] deterministic

| | sql security

routine_body:

valid sql routine statement

[begin_label:] begin

[statement_list]

……end [end_label]

2呼叫儲存過程

call procedure 儲存過程名;

對使用者表中所有使用者的手機號前3位儲存到phone_head欄位中:

drop procedure

ifexists

addphonehead;

//判斷是否存在這個儲存過程,如果存在就刪除它

delimiter $$ //修改結束符

create

procedure

addphonehead

()begin

// -- 宣告與列的型別相同變數

declare

ddint

default

false;

declare idd int;

declare phon varchar(255);

//-- 1、定義乙個游標mycursor

declare cur cursor for

select id,phone from t_phon;

//--設定結束標記

declare continue handler for

not found set dd=true;

//-- 2、開啟游標

open cur;

//-- 3、使用游標獲取列的值

fetch cur into idd,phon;

while(not dd) do

//--4、在迴圈體裡面進行操作,游標往下移動

update t_phon set phone_head =substring(phon,1,3) where id = idd;

fetch cur into idd,phon;

endwhile;

//-- 5、關閉游標

close cur;

end ;

$$delimter ;

call addphonehead();

二、儲存過程的引數

儲存過程可以有0個或多個引數,用於儲存過程的定義。

3種引數型別:

in輸入引數:表示呼叫者向過程傳入值(傳入值可以是字面量或變數)

out輸出引數:表示過程向呼叫者傳出值(可以返回多個值)(傳出值只能是變數)

inout輸入輸出引數:既表示呼叫者向過程傳入值,又表示過程向呼叫者傳出值(值只能是變數)

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語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...