gpt4 book ai didi

mysql - MYSQL 的单个 StoredProcedure 中的两个 DataSet

转载 作者:行者123 更新时间:2023-11-30 22:45:23 25 4
gpt4 key购买 nike

我正在使用 Mysql 数据库。我必须在其中创建一个包含两个选择语句的存储过程,我想从中返回两个不同的数据集。但是当我创建存储过程时,它只需要第一个 select 语句。我的程序如下,

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`$$
CREATE PROCEDURE `test`()
SELECT * FROM `ps.pass`$$
SELECT * FROM `ps.pass_type`$$
DELIMITER ;

但是在创建第二条语句 ps.pass_type 之后,它并没有添加到存储过程中。欢迎提出任何建议!

最佳答案

问题是您在第一次选择后使用定界符结束程序,您应该在最后完成。

举个例子

mysql> select * from clients ;
+------+-------+
| id | name |
+------+-------+
| 1 | james |
| 2 | jill |
+------+-------+
2 rows in set (0.00 sec)

mysql> select * from timesheets ;
+-----------+-------+----------+
| client_id | hours | category |
+-----------+-------+----------+
| 1 | 1.50 | onsite |
| 1 | 1.50 | onsite |
| 1 | 1.00 | remote |
| 2 | 1.50 | remote |
+-----------+-------+----------+
4 rows in set (0.00 sec)

现在让我们创建一个像您的过程

delimiter //

create procedure test_case()
begin
select * from clients ;
select * from timesheets ;
end;//

delimiter ;

在 mysql 中,一旦创建就可以调用该过程

mysql> call test_case();
+------+-------+
| id | name |
+------+-------+
| 1 | james |
| 2 | jill |
+------+-------+
2 rows in set (0.00 sec)

+-----------+-------+----------+
| client_id | hours | category |
+-----------+-------+----------+
| 1 | 1.50 | onsite |
| 1 | 1.50 | onsite |
| 1 | 1.00 | remote |
| 2 | 1.50 | remote |
+-----------+-------+----------+
4 rows in set (0.00 sec)

关于mysql - MYSQL 的单个 StoredProcedure 中的两个 DataSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com