Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL单存储过程中的两个数据集_Mysql - Fatal编程技术网

MYSQL单存储过程中的两个数据集

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 ; 但是在创建第二条语句后,它不会

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

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)