create precedure procedure_name(in param_1 int,out param_2, inout param_3 int )
begin
end;
1.不論有沒有引數都要加上括號.
2.對自定義的變數使用set param=value
來賦值,使用select param
來檢索.
1.in 代表輸入引數,呼叫者向儲存過程內部傳值,可以直接傳值也可以把值附給乙個變數傳進去。儲存過程內的變數是區域性變數,值改變後不會影響外部的變數(可以簡單的理解為呼叫函式或方法時傳的引數)。
create procedure cqupt(in param int)
begin
select param;
set param=2;
select param;
end;
使用call來呼叫儲存過程:
set @value=5;
call cqupt(@value);
select @value;
這是結果:
這裡需要提一下的是自定義的變數應該加上@。
2.out 代表輸出引數,不接受外界給他傳的值,即使傳值也沒有用,通常傳入乙個變數進去,在儲存過程內部給變數賦值,會影響外界的值。
自定義函式和儲存過程很像,但是函式要求有乙個返回值,並且函式只會返回乙個值,不允許返回乙個結果集。
建立語法:
create function 函式名(引數) returns 資料型別
begin
sql語句;
return 值;
end;
mysql 過程和函式 MySQL 儲存過程和函式
變數 系統變數 變數由系統提供,不是使用者自定義的,屬於伺服器層面 全域性變數 會話變數 如果是全域性級別,則需要加global,如果是會話級別,則需要加session,如果不寫,則預設是會話 檢視全域性變數 show global variables show global variablesli...
MySQL儲存過程和儲存函式
儲存過程和儲存函式 mysql的儲存過程 stored procedure 和函式 stored function 統稱為stored routines。1.儲存過程和函式的區別 函式只能通過return語句返回單個值或者表物件。而儲存過程不允許執行return,但是通過out引數返回多個值。函式是...
Mysql 儲存過程和函式
一 儲存過程 procedure 本質上沒區別,執行的本質都一樣。只是函式有如 只能返回乙個變數的限制。而儲存過程可以返回多個。函式是可以嵌入在sql中使用的,可以在select中呼叫,而儲存過程要讓sql的query 可以執行,需要把 mysql real connect 的最後乙個引數設定為cl...