存储过程英文是stored procedure,就是一组经过预先编译的sql语句的封装。
存储过程预先存储在mysql服务器上,需要执行时,客户端只需要向服务端发出调用的命令,服务端就可以把预先存储好的这一系列sql语句全部执行。
存储过程的参数类型可以是in、out、inout。
DELIMITER $$
CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型,....)
[characteristics ...]
BEGIN
存储过程体
END $$
DELIMITER ;


call 存储过程名() 调用DELIMITER $$
CREATE FUNCTION 存储函数名(IN|OUT|INOUT 参数名 参数类型,....)
RETURNS 返回值类型
[characteristics ...]
BEGIN
存储函数体
END $$
DELIMITER ;
select 存储函数()调用若在创建存储过程中报错‘you might want to use the less safe log_bin_trust_function_creators variabke’有两种处理方法:
使用show create查看创建信息
show create {procedure | function} 存储过程名或函数名
使用show status查看状态信息
show {procedure | function} status [like '存储过程名或函数名']
该语句返回子程序的特征,如数据库、名字、类型、创建者、创建修改时间等。like默认匹配名子,如果省略会列出所有的存储过程或函数。
** 从information_schema.Routines表中查看存储过程和函数信息**
select * from information_schema.Routines where routine_name='存储过程和函数名'
修改只能修改约束信息,如果要对存储内容体进行修改只能删除新增
alter procedure 存储过程名 SQL SECURITY INVOKER COMMENT '111'
drop function if exists 存储函数名;
不同的公司对存储过程的使用需求差别很大,主要有如下缺点: