Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL不支持包含多条语句的while循环_Mysql_Sql_Stored Procedures_Mysql Workbench - Fatal编程技术网

MYSQL不支持包含多条语句的while循环

MYSQL不支持包含多条语句的while循环,mysql,sql,stored-procedures,mysql-workbench,Mysql,Sql,Stored Procedures,Mysql Workbench,我试图在Mysql 5.6中安装一个过程,从Mysql工作台(版本6)启动命令。 我得到一个sintax错误,没有明显的原因。 如果我只是删除while循环中两个assignment中的一个,那么它就可以工作了。 为什么我不能在while中放两个语句 DELIMITER // CREATE PROCEDURE PROC (IN TABLE_ varchar(400)) BEGIN DECLARE Statement varchar(400) DEFAULT "

我试图在Mysql 5.6中安装一个过程,从Mysql工作台(版本6)启动命令。 我得到一个sintax错误,没有明显的原因。 如果我只是删除while循环中两个assignment中的一个,那么它就可以工作了。 为什么我不能在while中放两个语句

DELIMITER //  

    CREATE PROCEDURE PROC (IN TABLE_  varchar(400))

BEGIN 
        DECLARE Statement varchar(400) DEFAULT ""; 
        DECLARE i INTEGER  DEFAULT 1; 
        DECLARE N INTEGER  DEFAULT 2; 

    while i <= N do 
      set Statement = 'a';
      set i = i+1;
    end while;
    END
       //
        DELIMITER ;
分隔符//
创建过程PROC(在表\uvarchar(400)中)
开始
声明语句varchar(400)DEFAULT“”;
声明i整数默认值为1;
声明N个整数默认值为2;

虽然我知道您使用的是哪个mysql版本,但mysql 8.0.18对此程序没有问题。我正在尝试将其运行到mysql 5.6中。我看不到错误,可能有一些字符。这里没有出现。从您的问题中复制文本并重试。我认为这可能是您声明中的DEFUALT“”的问题。如果您不使用DEFUALT子句,那么初始值为NULL,因此我将尝试使用它。因为以后当您使用单引号设置语句时,它可能会出错。@jimmy_代码在本地重新创建时没有错误。