mysql儲存過程和函式總結

2021-08-20 06:41:58 字數 2811 閱讀 4495

sql命令

建立儲存過程

create procedure 儲存過程名(引數種類1 引數1 資料型別1,[…] begin 具體的procedure(處理) end

檢視資料庫中的儲存過程

show procedure status\g

檢視具體的儲存過程

show create procedure 儲存過程名\g

呼叫(執行)儲存過程

call 儲存過程名(引數1,…);

刪除儲存過程

drop procedure 儲存過程名

變數宣告

declare 變數名 資料型別;

變數賦值

set 變數名= ;

create

procedure

sp_name

([ proc_parameter ]) [ characteristics..] routine_body

[in|out|inout] param_name type
characteristic:

language sql | [not] deterministic

| | sql security

| comment 'string'

routine_body:

valid sql procedure

statement

orstatements

create

function

func_name

([func_parameter])

returns

type

[characteristics...] routine_body

[in|out|inout]param_name type
declare

var_name

[,varname]...date_type

[default value];

set var_name=expr[,var_name=expr]...
declare name  char(50);

declare id decimal(8,2);

select id,name into id ,name

from t3 where id=2;

declare

condition_name condition for[condition_type]

[condition_type]:sqlstate[value] sqlstate_value |mysql_error_code

//方法一:使用sqlstate_value

declare

command_not_allowed condition for

sqlstate '42000'

//方法二:使用mysql_error_code

declare

command_not_allowed condition for

sqlstate 1148

declare

handler_type handler for

condition_value[,...] sp_statement

handler_type:

continue | exit | undo

condition_value:

sqlstate [value] sqlstate_value |

condition_name | sqlwarning| not found | sqlexception | mysql_error_code

/方法一:捕獲sqlstate_value

declare

continue handler

forsqlstate

'42000'

set@info='can not find';

//方法二:捕獲mysql_error_code

declare

continue handler

for1148set

@info='can not find';

//方法三:先定義條件,然後呼叫

declare

can_not_find condition for

1146 ;

declare

continue handler

forcan_not_find set

@info='can not find';

//方法四:使用sqlwarning

declare

exit handler

forsqlwarning set

@info='error';

//方法五:使用not

found

declare

exit handler

fornot

found

set@info='can not find';

//方法六:使用sqlexception

declare

exit handler

forsqlexception set

@info='error';

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