CREATE PROCEDURE 存储过程名()
一个例子说明:一个返回产品平均价格的存储过程如下代码:
CREATE PROCEDURE productpricing()
BEGIN
SELECT Avg(prod_price) AS priceaverage
FROM products
END
//创建存储过程名为productpricing,如果存储过程需要接受参数,可以在()中列举出来。即使没有参数后面仍然要跟()。BEGIN和END语句用来限定存储过程体,过程体本身是个简单的SELECT语句
1)过程名存储过程的名称,默认在当前数据库中创建。若需要在特定数据库中创建存储过程,则要在名称前面加上数据库的名称,即db_name.sp_name。
需要注意的是,名称应当尽量避免选取与MySQL内置函数相同的名称,否则会发生错误。
2)过程参数
存储过程的参数列表。其中,为参数名,为参数的类型(可以是任何有效的MySQL数据类型)。当有多个参数时,参数列表中彼此间用逗号分隔。存储过程可以没有参数(此时存储过程的名称后仍需加上一对括号),也可以有1个或多个参数。
MySQL存储过程支持三种类型的参数,即输入参数、输出参数和输入/输出参数,分别用IN、OUT和INOUT三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个 *** 作结果的情形,而输入/输出参数既可以充当输入参数也可以充当输出参数。
创建存储过程mysql>
delimiter
$
--
delimiter
$是设置
$为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql>
create
procedure
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
->
begin
->
select
*
from
test.tb_test
->
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id
->
end
->
$
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
delimiter
--
恢复分号作为分隔终止符号
5.调用存储过程
mysql>
set
@po_name=''
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
call
sp_test(1,@po_name)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)