MySQL 儲存過程

2021-09-19 20:11:32 字數 1965 閱讀 4225

create procedure sp_name ([proc_parameter[,…]])

routine_body

proc_parameter:

-[in|out|inout] param_name type

引數

-in,表示給引數的值必須在呼叫儲存過程時指定

-out,表示該引數的額值可以被儲存過程改變,並可以返回

-inout,表示該引數的呼叫時指定,並且可以被改變和返回

無參過程的呼叫可以不寫小括號

# 建立無引數的儲存過程

mysql> create procedure sp1() select version();

# 呼叫無引數的儲存過程可以不加括號

mysql> call sp1;

mysql> call sp1();

+------------+

| version() |

+------------+

| 5.7.18-log |

+------------+

# 建立in型別引數

mysql> create

procedure

removeuserbyid

(in p_id int unsigned)

-> begin

-> delete

from

user

where

id = p_id ;

-> end

-> //

mysql> call removeuserbyid(9)//

drop procedure [if exists] sp_name

// 刪除指定的記錄,並返回剩餘記錄的數量

mysql> create

procedure

removeuserandreturnusernums

(in p_id int unsigned,out usernums int unsigned)

-> begin

-> delete

from

user

where

id = p_id;

-> select count(id) from user into usernums;

-> end

-> //

query ok, 0 rows affected (0.00 sec)

# 使用row_count() 獲得被更改的行數

mysql> delimiter //

mysql> create procedure removeuserbyusername(in user_name varchar(20),out deletecount int,out restcount int)

-> begin

-> delete from user where username = user_name;

-> select row_count() into deletecount;

-> select count(id) from user into restcount;

-> end

-> //

mysql> select @a,@b;

+------+------+

| @a | @b |

+------+------+

| 3 | 4 |

+------+------+

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