储存过程和函数就是数据器将一些处理封装起来,调用
调用储存过程只需要使用CALL,然后指定储存名称和参数,参数可以是IN、OUT和INOUT
调用储存函数只需要使用SELECT,指定名称和参数,储存函数必须有返回值,参数只能是IN
create procedure sp_name ([proc_parameter[,…]]) [characteristic …] routine_body
create procedure 创建储存过程关键字
sp_name 储存过程名称
proc_parameter 参数
characteristic 约束
routine_body 执行体,使用BEGIN— END包括
proc_parameter
IN | OUT | INOUT param_name type
characteristic
language SQL 执行体
[not] deterministic 得出的结果是否确定,不带NOT 出入相同,默认带NOT
constains SQL 不包含读写SQL , no sql 不包含sql语句, reads sql data 读数据的sql, modifies sql data 包含读sql语句, 默认contains sql
sql security definer 只有创建者菜能执行 invoker 表示有权限访问的就可执行
comment 注释
下面是创建一个储存过程的定义,在对应的工具中找到创建储存过程的地方。

create function func_name (func_parameter[,…]) returns type [characteristic …] routine_body
create function 创建储存函数关键字
func_name 储存函数名字
func_parameter 参数,储存函数只能是IN
returns type 返回数据类型
characteristic 函数约束
routine_body SQL执行体
show create procedure sp_name
show procedure status like ‘’
从数据库中information_schema中查询
call 调用
drop 删除
alter 修改
declare var_name[,…] type [default value]
declare 定义变量关键字
var_name 变量名称
type 类型
[default value] 默认值

declare condition_name condition for condition_value
condition_name 条件名称
condition_value 条件类型
SQLSTATE [value] sqlstate_value | mysql_error_code
sqlstate_value 长度为5的错误信息
mysql_error_code 数值类型的错误代码
declare exec_refused condition for sqlstate ‘48000’;
declare handler_type handler for condition_value[,…] sq_statement
handler_type 定义错误的处理方式
condition_value 错误类型
sq_statement 遇到错误,需要执行的储存过程或函数
handler_type
continue 继续处理
exit 退出
undo 撤回,目前不支持
condition_value
sqlstate [value] sqlstate_value
condition_name
sqlwarning
not found
sqlexception
mysql_error_code
declare continue handler for sqlstate ‘29011’ set @log=’ database not found ’

if
loop (leave 退出当前流程,iterate 跳出本次循环)
while
case
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!