一个存储过程正在返回一个表,我想将该结果保存到另一个存储过程中。 我面临SQL语法错误。
首次存储过程
DELIMITER $$
USE `dataBase`$$
DROP PROCEDURE IF EXISTS `testReturnTable`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `testReturnTable`()
BEGIN
SELECT `user_id`, `email` FROM `users`;
END$$
DELIMITER ;
我试图将此存储过程称为另一个,并希望将数据保存到视图或表中
DELIMITER $$
USE `dataBase`$$
DROP PROCEDURE IF EXISTS `testReturnCall`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `testReturnCall`()
BEGIN
DROP VIEW IF EXISTS `my_view`;
CREATE OR REPLACE VIEW my_view AS (CALL testReturnTable());
SELECT * FROM my_view;
END$$
DELIMITER ;
并收到错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CALL testReturnTable());
我也可以在这里使用函数,但我不知道如何处理结果集, 请建议。
答案 0 :(得分:1)
无法将表输出从一个存储过程转移到另一个存储过程。但我们有替代方法,这是Temp表