无法使用动态sql在mysql中创建表
这是我在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
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不会是它的一部分。试着注释那一行,同时删除前一行的分号,例如“;”变成