Mysql存储过程语法错误1064

标签 mysql stored-procedures

我有一个 MySQL 存储过程。是这样的:

CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
SET @x = 1;
REPEAT

INSERT INTO `edittables` (`USER_ID`, `REFERENCETYPE`, `COLUMNNAME`, `VERSION`, `CREATEDDATETIME`, `LASTUPDATEDDATETIME`) VALUES
  (@x ,12,'type', 0, "2014-08-12 00:00:00", "2000-08-12 00:00:00");

SET @x = @x + 1;
UNTIL @x > p1 END REPEAT;
END
//

我收到这个错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REPEAT

INSERT INTO `edittables` (`USER_ID`, `REFERENCETYPE`, `COLUMNNAM' at line 1

有什么想法吗?

最佳答案

试试这个

DELIMITER //   
CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
    DECLARE x  INTEGER;
    SET x = 1;
    REPEAT
         INSERT INTO `edittables` (`USER_ID`, `REFERENCETYPE`, `COLUMNNAME`,`VERSION`, `CREATEDDATETIME`, `LASTUPDATEDDATETIME`) VALUES (X ,12,'type', 0, "2014-08-12 00:00:00", "2000-08-12 00:00:00");
         SET  x = x + 1;
    UNTIL x > p1
    END REPEAT;    
END //
DELIMITER ;

关于Mysql存储过程语法错误1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25279297/

相关文章:

sql - SQL Server 2005中获取动态SQL返回的临时表,并解析

mysql - 如何在dotnetnuke中创建模块连接到mysql

mysql - SQL:使用单个查询计算不同的 where 情况

mysql - SQL查找重复行

mysql - SQL 连接 with where 和having count() 条件

sql-server - SQL Server 自定义计数器存储过程创建欺骗

MySQL match against 无法正常工作

c# - 存储过程参数名称是否必须与从 C# 传递的参数匹配?

sql - 如何解决SQL Server存储过程中字符串或二进制数据被截断的问题

postgresql - 错误 : column "xxx" does not exist: Postgresql plpgsql stored procedure