不带参数:
1、删除存储过程:
drop PROCEDURE if exists testPro; /*testPro为存储过程的名称,名称后面不带括号*/
drop procedure p3
2、创建存储过程:MySQL 存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”
create PROCEDURE testPro()
begin
select * from usermsg;
End
3、修改:找到如下地址,修改保存即可
4、执行存储过程
call testPro();
带参数:
1、输入参数IN,输出参数OUT:uid输入参数,name输出参数
CREATE PROCEDURE `test`(IN `uid` varchar(20),OUT `name` varchar(20))
BEGIN
select TrueName from usermsg where UserId=uid into name;
END
调用:
SET @uid = ‘00001’;
CALL test(@uid ,@name);
select @name
或者
CALL test('00001',@username);
select @username as username
2、inout参数类型的使用
CREATE PROCEDURE p3(INOUT age INT)
BEGIN
SET age := age + 20;
END
调用:
set @currage =18;
call p3(@currage);
select @currage;
使用注意事项:
1、创建时:MySQL存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”
2、不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
3、MySQL 存储过程中的每条语句的末尾,都要加上分号 “;”
4、-- 这是单行 MySQL 注释 (注意 – 后至少要有一个空格);# 这也是个单行 MySQL 注释
5、不能在 MySQL 存储过程中使用 “return” 关键字。
6、调用存储过程:call sp_name()
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递
7、显示所有的存储过程,显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
show PROCEDURE status;
8、查看存储过程的内容,显示某一个MySQL存储过程的详细信息
show create procedure test;