本文介绍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存储过程的创建就介绍这么多,谢谢!

03-14 19:32