简体   繁体   English

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

[英]PHPmyadmin error when trying to insert stored procedure results to table

I am trying to store table results of two stored procedures to a single table in phpmyadmin routine window which gives me mariadb syntax error. 我试图将两个存储过程的表结果存储到phpmyadmin例程窗口中的单个表中,这给了我mariadb语法错误。 Calling the stored procedures separately gives me the results. 分别调用存储过程可以得到结果。

Stored procedure code 存储过程代码

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

This code gives me the following syntax error 这段代码给我以下语法错误

The following query has failed: 以下查询失败:

"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 said: #1064 - You have an error in your SQL syntax; MySQL说:#1064-您的SQL语法有误; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO temp CALL stored_procedure1(); 检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在'INSERT INTO temp CALL created_procedure1()附近使用;

I tried changing syntax of TABLE temp to TABLE #temp and adding ; 我尝试将TABLE TEMP的语法更改为TABLE #temp并添加; at the end of create table statement which did not resolve it. 在无法解决的创建表语句末尾。

First, you should change default delimiter which is ; 首先,您应该更改默认分隔符; to something like // //

Also, i assume you forgot to put CREATE PROCEDURE Something() statement here. 另外,我假设您忘记在此处放置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 ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM