mysql在另一个存储过程中调用存储过程将返回内部调用的结果

mysql在另一个存储过程中调用存储过程将返回内部调用的结果,mysql,stored-procedures,Mysql,Stored Procedures,我一直在尝试,在一个存储过程中,调用另一个存储过程并对其结果进行处理。我已经阅读并注意到,我需要在内部调用中创建一个临时表来存储结果,并在外部调用中查询该临时表 但是,每当调用外部存储过程时,它总是返回内部存储过程调用的结果 为了简化此过程,我创建了两个存储过程: CREATE PROCEDURE `classmates`.`three` () NOT DETERMINISTIC begin SELECT 3; end; 以及: 然后我叫: call four(); 它返回: +--

我一直在尝试,在一个存储过程中,调用另一个存储过程并对其结果进行处理。我已经阅读并注意到,我需要在内部调用中创建一个临时表来存储结果,并在外部调用中查询该临时表

但是,每当调用外部存储过程时,它总是返回内部存储过程调用的结果

为了简化此过程,我创建了两个存储过程:

CREATE PROCEDURE `classmates`.`three` () 
 NOT DETERMINISTIC 
begin
SELECT 3;
end; 
以及:

然后我叫:

call four();
它返回:

+-------------+
| 3           |
+-------------+
| 3           |
+-------------+
为什么它不返回4? 提前谢谢

编辑:将过程更改为确定性没有帮助。另外,我真正的“三”过程是一个相当长的过程,不确定,结果包含>10列。正在将代码从“三”复制到“四”。。。这确实有效,但减少了代码重用

PS这是我第一次问问题,如果我没有说清楚,很抱歉,请让我知道

编辑:已解决,感谢Barmar


我制作了一个助手存储过程,它只创建临时表,不单独执行任何SELECT语句。然后,在两个过程调用中,我都调用这个助手。问题解决了

过程从其第一个SELECT语句返回结果集。尝试开始选择3;选择4个;结束,你会看到同样的事情。谢谢我还以为这是最后一个select语句呢。是否执行创建表tablename之类的操作选择。。。也算?好的,他们不算。非常感谢你,巴尔马!创建表不返回任何内容。仅选择返回结果。酷。我会再到处乱拉。非常感谢。
+-------------+
| 3           |
+-------------+
| 3           |
+-------------+