mysql儲存過程

2021-07-09 17:15:13 字數 2241 閱讀 2734

一、mysql 建立儲存過程

「pr_add」 是個簡單的 mysql 儲存過程,這個mysql 儲存過程有兩個 int 型別的輸入引數 「a」、「b」,返回這兩個引數的和。

drop procedure if exists pr_add; 

計算兩個數之和

create procedure pr_add 

( a int, 

b int 

) begin 

declare c int; 

if a is null then 

set a= 

0; end if; 

if b is null then 

set b= 

0; end if; 

set c= 

a+ b; 

select c as sum; 

end; 

二、呼叫 mysql 儲存過程

call pr_add(10, 20); 

執行 mysql 儲存過程,儲存過程引數為 mysql 使用者變數。

set @a= 

10; 

set @b= 

20; 

call pr_add(@a, @b); 

三、mysql 儲存過程特點

建立 mysql 儲存過程的簡單語法為:

create procedure 儲存過程名字() 

( [in|out|inout] 引數 datatype 

) begin 

mysql 語句; 

end; 

mysql 儲存過程引數如果不顯式指定「in」、「out」、「inout」,則預設為「in」。習慣上,對於是「in」 的引數,我們都不會顯式指定。

1. mysql 儲存過程名字後面的「()」是必須的,即使沒有乙個引數,也需要「()」

2. mysql 儲存過程引數,不能在引數名稱前加「@」,如:「@a int」。下面的建立儲存過程語法在 mysql 中是錯誤的(在 sql server 中是正確的)。 mysql 儲存過程中的變數,不需要在變數名字前加「@」,雖然 mysql 客戶端使用者變數要加個「@」。

create procedure pr_add 

( @a int, -- 錯誤 

b int -- 正確 

) 3. mysql 儲存過程的引數不能指定預設值。

4. mysql 儲存過程不需要在 procedure body 前面加 「as」。而 sql server 儲存過程必須加 「as」 關鍵字。

create procedure pr_add 

( a int, 

b int 

) as -- 錯誤,mysql 不需要 「as」 

begin 

mysql statement ...; 

end; 

5. 如果 mysql 儲存過程中包含多條 mysql 語句,則需要 begin end 關鍵字。

create procedure pr_add 

( a int, 

b int 

) begin 

mysql statement 1 ...; 

mysql statement 2 ...; 

end; 

6. mysql 儲存過程中的每條語句的末尾,都要加上分號 「;」

... 

declare c int; 

if a is null then 

set a= 

0; end if; 

... 

end; 

7. mysql 儲存過程中的注釋。

declare c int; -- 這是單行 mysql 注釋 (注意 -- 後至少要有乙個空格) 

if a is null then # 這也是個單行 mysql 注釋 

set a= 

0; end if; 

... 

end; 

8. 不能在 mysql 儲存過程中使用 「return」 關鍵字。

set c= 

a+ b; 

select c as sum; 

end; 

9. 呼叫 mysql 儲存過程時候,需要在過程名字後面加「()」,即使沒有乙個引數,也需要「()」

call pr_no_param(); 

10. 因為 mysql 儲存過程引數沒有預設值,所以在呼叫 mysql 儲存過程時候,不能省略引數。可以用 null 來替代。

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