如何通过用MySQL怎么创建存储过程?

如何通过用MySQL怎么创建存储过程?,第1张

创建存储过程

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7315308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存