无法使用动态sql在mysql中创建表

无法使用动态sql在mysql中创建表,mysql,Mysql,这是我在MySQL中的代码 USE database; DROP procedure IF EXISTS CreateTable; DELIMITER $$USE ims_data$$ CREATE PROCEDURE CreateTable () BEGIN Set @SqlQuery = Concat('DROP TABLE IF EXISTS mytemptable;'); Set @SqlQuery = Concat(@SqlQuery,'\r\n','create table

这是我在MySQL中的代码

USE database;
DROP procedure IF EXISTS CreateTable;
DELIMITER $$USE ims_data$$
CREATE PROCEDURE CreateTable ()
    BEGIN
Set @SqlQuery = Concat('DROP TABLE IF EXISTS mytemptable;');
Set @SqlQuery = Concat(@SqlQuery,'\r\n','create table mytemptable');
Set @SqlQuery = Concat(@SqlQuery,'\r\n','(');
Set @SqlQuery = Concat(@SqlQuery,'\r\n','Column1 int,');
Set @SqlQuery = Concat(@SqlQuery,'\r\n','Column2 varchar(500)');
Set @SqlQuery = Concat(@SqlQuery,'\r\n',');');
Set @SqlQuery = Concat(@SqlQuery,'\r\n','Select * from mytemptable;');
#Select @SqlQuery;
PREPARE Statement From @SqlQuery;
EXECUTE Statement;  
DEALLOCATE PREPARE Statement;
END$$

DELIMITER ;

call GetUploadInformation();
我试图创建一个表,但它给了我一个错误

错误代码:1064。您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在“create table mytentable stockister_Code int,Status varchar500;在第2行选择' 这是查询的输出

    DROP TABLE IF EXISTS mytemptable;
create table mytemptable
(
Column1 int,
Column2 varchar(500)
);
Select * from mytemptable;

在不调用该过程的情况下执行此代码时,它可以正常工作。

PREPARE/EXECUTE只能处理。您正在尝试使用;执行两个

错误消息为您提供了一条线索,因为它同时运行了这两条语句


您必须将它们作为单独的语句运行。

PREPARE/EXECUTE只能处理。您正在尝试使用;执行两个

错误消息为您提供了一条线索,因为它同时运行了这两条语句


您必须将它们作为单独的语句运行。

我注释掉了每一行,并且只做了一条语句,然后它也给出了相同的错误。如果您注释掉包含SELECT的行,您将不会有完全相同的错误,因为SELE至少不会是其中的一部分。试着注释那一行,同时删除前一行的分号,例如“;”当我注释掉每一行并且只做了一条语句时,它也给出了相同的错误。如果你注释掉这行,包括SELECT,那么你不会有完全相同的错误,因为至少SELE不会是它的一部分。试着注释那一行,同时删除前一行的分号,例如“;”变成