如何在mysql中获取存储过程中的表数据

kb5ga3dv  于 2023-05-05  发布在  Mysql
关注(0)|答案(1)|浏览(168)

我试图将数据放入mysql中存储过程的输出参数中,但我没有得到它。
下面是查询:

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_initial_data`(
out usersData varchar(500), 
out employeesData varchar(500)
)

BEGIN

SELECT * into usersData FROM users;

SELECT * into employeesData FROM employees;

END

我是这样称呼它的

Call get_initial_data(@users, @employees)

select @users

select @employees

我尝试了这个方法,我能够创建存储过程,但我无法调用它,得到以下错误:
错误代码:1172结果包含多行
你能帮助我吗,我是否正确地传递了输出参数以及数据类型?
请让我知道你对此的React

1tu0hz3e

1tu0hz3e1#

输出参数只能包含一个值。您正在尝试通过输出变量返回结果集。这不是输出参数的工作方式。
读取来自过程的结果集;不需要使用输出变量。

CREATE PROCEDURE get_initial_data()

BEGIN

SELECT * FROM users;
SELECT * FROM employees;

END

当您有一个过程调用另一个过程并使用被调用过程的输出时,输出参数非常有用。即使这样,也只能对输出参数使用单个值。

相关问题