mysql中儲存過程

2021-07-28 09:52:58 字數 1087 閱讀 1388

delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用「;」結尾,回車後自動執行,在儲存過程中「;」往往不代表指令結束,馬上執行,而delimiter原本就是「;」的意思,因此用這個命令轉換一下「;」為「//」,這樣只有收到「//」才認為指令結束可以執行

檢視myql中已經存在的儲存過程:

show procedure status;

檢視某個儲存過程:

show create procedure 儲存過程名字;

儲存過程示例:

create table p_user(  

id int primary key auto_increment,  

name varchar(10),

*** char(2)

); insert into p_user(name,***) values('a',"男");  

insert into p_user(name,***) values('b',"女");  

insert into p_user(name,***) values('c',"男");  

-- 建立儲存過程(查詢得到男性或女性的數量, 如果傳入的是0就女性否則是男性)

delimiter $

create procedure mybatis.ges_user_count(in ***_id int, out user_count int)

begin  

if ***_id=0 then

select count(*) from mybatis.p_user where p_user.***='女' into user_count;

else

select count(*) from mybatis.p_user where p_user.***='男' into user_count;

end if;

end 

$-- 呼叫儲存過程

delimiter ;

set @user_count = 0;

call mybatis.ges_user_count(1, @user_count);

select @user_count;

mysql中儲存過程

儲存過程,其本質還是函式 但其規定 不能有返回值 說明 1,in 用於設定該變數是用來 接收實參資料 的,即 傳入 預設不寫,就是in 2,out 用於設定該變數是用來 儲存儲存過程中的資料 的,即 傳出 即函式中必須對它賦值 3,inout 是in和out的結合,具有雙向作用 4,對於,out和i...

mysql中儲存過程學習

例項 獲取登入 登出 操作日誌 命令日誌 從系統日誌表查詢,命令日誌表查詢結過儲存到臨時表中,得到所有的日誌,然後按條件進行篩選 create function getlog uname varcharacter 200 starttime datetime,endtime datetime,log...

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...