本文介绍MySQL中创建存储过程的操作、相关的SQL语句,以及相关的注意事项。
MySQL创建存储过程的基本语法
CREATE PROCEDURE <存储过程名> (参数列表)
BEGIN
SQL语句代码块
END
注意事项
1、MySQL创建存储过程的SQL语句是一个代码段,在使用代码段时,一定要先声明代码的定界符。
为什么会这样呢?因为默认情况下,MySQL把分号(;)作为定界符,遇到分号时,MySQL就认为一段语句结束了,可以执行了。但存储过程中本身还会遇到SQL语句后面带的分号,所以MySQL就会执行失败。
举个例子看一下:
create procdure myproc()
begin
select count(1) from tb_users;
end
如果就这样放进去执行,MySQL会在“tb_users;”处将存储过程的代码截断,然后先执行,然后你知道的,这部分代码怎么执行啊,执行不了的,它不是一个完整的创建存储过程的代码段。
怎么解决呢?可以使用delimiter命令来指定一个代码段的定界符,比如“//”。程序改一下:
delimiter //
create procdure myproc()
begin
select count(1) from tb_users;
end
//
这样,代码就可以说正确的执行了,存储过程就创建起来了。
2、存储过程的参数列表
参数的指定形式为:
[in|out|inout] <参数名> <参数类型> [,[in|out|inout] <参数名> <参数类型>]...
看上来这个不一定看得懂,这是我按照cmd命令的命令格式语法写的。还是来看看例子吧:
delimiter //
create procdure myproc(in username varchar(20), in age int)
begin
insert into tb_users(u_name, u_age) values(username, age);
end
好了,关于MySQL存储过程的创建就介绍这么多,谢谢!