mysql沒有儲存過程 mysql儲存過程

2021-10-22 09:20:15 字數 1326 閱讀 4211

定義

為了完成特定功能的 sql語句集。經編譯建立並儲存在資料庫的資料字典中。

特點沒有返回值

沒有sql語句呼叫,只能call呼叫

不返回結果集

語法宣告語句結束符,可自定義

delimiter // or

delimiter $$

建立儲存過程,儲存函式

create procedure 儲存過程名(引數)

建立儲存過程體

create function 儲存過程名(引數)

儲存過程開始和結束

begin....end

引數引數型別: in,out,inout

in 輸入引數: 呼叫時指定,儲存過程修改該值不能返回

out 輸出引數: 不接收傳入值,可在儲存過程被改變並可返回

inout 輸入輸出引數: 呼叫時指定,可改變可返回

注意: 引數名不能是列名,否則會被當成列名處理

宣告變數

區域性變數需要放在儲存過程體的開始;

declare variable_name datatype [default value]

變數作用域: 僅存在begin...end這段內。

變數賦值

set 變數名 = 表示式值

注釋使用者變數

使用set 或 select 直接賦值,變數名以@開頭

變數作用域: 整個會話,全域性變數。

set @p_01 = 1

select name,bid into @a1,@a2 from bank limit 1; 變數名和欄位名不能一致。

呼叫儲存過程

call 儲存過程名[(傳參)]

查詢儲存過程

select name from mysql.proc where db='資料庫名'

orselect routine_name from information_schema where routine_schema='資料庫名'

orshow procedure status where db='資料庫名'

修改儲存過程

alter procedure

刪除儲存過程

drop procedure

栗子mysql> delimiter $$

mysql> create procedure inout_param(inout p_inout int)

-> begin

-> select p_inout;

-> set p_inout=2;

-> select p_inout;

-> end

mysql> delimiter ;

Mysq 儲存過程

drop procedure if exists xl 建立儲存過程 delimiter 轉譯字元 使用 代替 create procedure xl begin select from fd car report end delimiter 轉譯字元 使用 代替 call xl 呼叫儲存過程 de...

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...