尝试将存储过程结果插入表时PHPmyadmin错误

时间:2016-08-18 10:14:58

标签: php mysql sql database phpmyadmin

我试图将两个存储过程的表结果存储到phpmyadmin例程窗口中的单个表中,这给了我mariadb语法错误。分别调用存储过程可以得到结果。

存储过程代码

BEGIN
CREATE TABLE temp(Name VARCHAR(200), Value1 varchar(100), Value2 varchar(100))
INSERT INTO temp CALL stored_procedure1();
INSERT INTO temp CALL stored_procedure2();
END

此代码给出了以下语法错误

以下查询失败:

"CREATE DEFINER=`root`@`localhost` PROCEDURE `get_data`() NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER BEGIN CREATE TABLE temp(Name VARCHAR(200), Value1 varchar(100), Value2 varchar(100)) INSERT INTO temp CALL stored_procedure1(); INSERT INTO temp CALL stored_procedure2(); END"

MySQL说:#1064 - 你的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在'INSERT INTO temp CALL stored_procedure1()附近使用正确的语法;

我尝试将TABLE temp的语法更改为TABLE #temp并添加;在create table语句的末尾没有解决它。

1 个答案:

答案 0 :(得分:0)

首先,您应该将;的默认分隔符更改为//

另外,我假设您忘记在此处添加CREATE PROCEDURE Something()声明。

DELIMITER //
CREATE PROCEDURE Something()
BEGIN
CREATE TABLE temp(Name VARCHAR(200), Value1 varchar(100), Value2 varchar(100));
INSERT INTO temp CALL stored_procedure1();
INSERT INTO temp CALL stored_procedure2();
END//
DELIMITER ;