我想将 mysql 存储过程的结果放入其他存储过程并插入到临时表中。
例子:
存储过程 1 的结果
ID NAME SEX
1 A M
2 B F
3 C M
存储过程 2 中的代码
CREATE TEMPORARY TABLE TBL1;
INSERT INTO TBL1 (call storeprocedure1('));
我们如何将存储过程 1 中的所有数据插入到存储过程 2 的临时表中?
我想将 mysql 存储过程的结果放入其他存储过程并插入到临时表中。
例子:
存储过程 1 的结果
ID NAME SEX
1 A M
2 B F
3 C M
存储过程 2 中的代码
CREATE TEMPORARY TABLE TBL1;
INSERT INTO TBL1 (call storeprocedure1('));
我们如何将存储过程 1 中的所有数据插入到存储过程 2 的临时表中?
不幸的是,你仍然不能在 Mysql 中做到这一点。
一种可能的解决方案是从第一个存储过程插入临时表并在第二个存储过程中使用它。
CREATE TEMPORARY TABLE tmp_result
(`ID` int, `NAME` varchar(1), `SEX` varchar(1));
CREATE PROCEDURE sp_one()
INSERT INTO tmp_result
SELECT 1 id, 'A' name, 'M' sex UNION ALL
SELECT 2, 'B', 'F' UNION ALL
SELECT 3, 'C', 'M';
CREATE PROCEDURE sp_two()
SELECT * FROM tmp_result;
CALL sp_one();
CALL sp_two();
DROP TEMPORARY TABLE tmp_result;