MYSQL单存储过程中的两个数据集
我正在使用Mysql数据库。其中,我必须创建一个包含两个select语句的存储过程,并从中返回两个不同的数据集。 但当我创建存储过程时,只需要第一个select语句。我的程序如下,MYSQL单存储过程中的两个数据集,mysql,Mysql,我正在使用Mysql数据库。其中,我必须创建一个包含两个select语句的存储过程,并从中返回两个不同的数据集。 但当我创建存储过程时,只需要第一个select语句。我的程序如下, DELIMITER $$ DROP PROCEDURE IF EXISTS `test`$$ CREATE PROCEDURE `test`() SELECT * FROM `ps.pass`$$ SELECT * FROM `ps.pass_type`$$ DELIMITER ; 但是在创建第二条语句后,它不会
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`$$
CREATE PROCEDURE `test`()
SELECT * FROM `ps.pass`$$
SELECT * FROM `ps.pass_type`$$
DELIMITER ;
但是在创建第二条语句后,它不会添加到存储过程中。欢迎任何建议 问题是,您将在第一次选择后使用分隔符结束该过程,您应该在结束时执行此操作 这里有一个例子
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)