在MySQL中创建带有IN和OUT参数的存储过程的方法

 我来答
lmonkey
2021-05-17 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

位绍镇承恩
2019-06-12 · TA获得超过3874个赞
知道大有可为答主
回答量:3064
采纳率:33%
帮助的人:229万
展开全部

MySQL
中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话。如果你通过命令行控制
MySQL,你需要记住准确的语法。一个快速示例可以很好的帮助你做到这点。在MySQL
入门教程中,我们能够看到很多关于如何创建储存过程
和如何利用
IN

OUT
参数调用存储过程的示例。这些示例都很简单,能够很好的帮助你理解
MySQL
中创建带参数存储过程的语法。这些示例已在
MySQL
5.5
中通过测试。我们将用下面的雇员表创建并测试这些储存过程:

mysql>
select
*
from
employee;
+--------+----------+---------+--------+
|
emp_id
|
emp_name
|
dept_id
|
salary
|
+--------+----------+---------+--------+
|
103
|
Jack
|
1
|
1400
|
|
104
|
John
|
2
|
1450
|
|
108
|
Alan
|
3
|
1150
|
|
107
|
Ram
|
NULL
|
600
|
+--------+----------+---------+--------+
4
rows
in
set
(0.22
sec)
创建和使用带In参数的MySQL存储过程
下面是一个命令行方式创建MySQL存过的例子,我们根据
department从employee表中获取一个总数,dept_id是department表的
外键。

mysql>
DELIMITER
//
mysql>
create
procedure
usp_totalEmployeeByDeparment(IN
id
INT)
->
begin
->
select
count(*)
as
total
from
employee
where
dept_id
=
id;
->
end//
Query
OK,
0
rows
affected
(0.00
sec)

mysql>
DELIMITER
;
首先我们改变默认的分隔符为“//”来作为存储过程结束的标识,随后再恢复默认值。使用“usp”前缀是区分系统存过过程和用户自定义存储过程的最佳实践。现在你可以在MySQL命令行像这样来调用存过:

mysql>
call
usp_totalEmployeeByDeparment(2);
+-------+
|
total
|
+-------+
|
1
|
+-------+
1
row
in
set
(0.06
sec)
创建和使用带IN和OUT参数的存储过程
在这个MySQL例子中,我们创建了一个IN和一个OUT参数的存储过程
usp_GetEmployeeName。当调用这个存储过程时,你需要传递2个参数:id和name,一个作为输入参数id,另外一个作为输出参数返回结果。

mysql>
DELIMITER
//
mysql>
create
procedure
usp_GetEmployeeName(IN
id
INT,
OUT
name
VARCHAR(20))
->
begin
->
select
emp_name
into
name
from
employee
where
emp_id
=
id;
->
end//
Query
OK,
0
rows
affected
(0.52
sec)
mysql>
DELIMITER
;
mysql>
call
usp_GetEmployeeName(103,
@name);
Query
OK,
1
row
affected
(0.05
sec)
以MySQL命令行方式调用存过:
mysql>
select
@name;
+-------+
|
@name
|
+-------+
|
Jack
|
+-------+
1
row
in
set
(0.00
sec)
这就是怎样从命令行方式创建和调用存储过程的所有内容,在这个教程中,我们创建了带IN和OUT参数的存储过程多个例子。这是记住MySQL数据库存过语法的最好方式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式