mysql - while 程序错误

标签 mysql while-loop

你知道为什么它不起作用吗?

CREATE TABLE IF NOT EXISTS `a_loop` (
  `id` int(11) NOT NULL DEFAULT '0',
  `num` varchar(50) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DELIMITER $$
CREATE PROCEDURE test_a_loop()
BEGIN
    DECLARE x  INT;
    DECLARE str VARCHAR(255);    
    SET x = 0;
    SET str =  '';
    WHILE x < 5 DO
    SET x = x + 1;
    SET str =  CONCAT('num-', x);
    INSERT INTO a_loop (id,num) VALUES (x, str);
    END WHILE;
END$$
DELIMITER;

我收到错误

#1064 - 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 'DELIMITER' at line 1

最佳答案

只需在分隔符后添加一个空格:) 失败的代码

DELIMITER $$
CREATE PROCEDURE test_a_loop()
BEGIN
    DECLARE x  INT;
    DECLARE str  VARCHAR(255);   
    SET x = 0;
    SET str =  '';
    WHILE x < 5 DO
    SET x = x + 1;
    SET str =  CONCAT('num-', x);
    INSERT INTO a_loop (id,num) VALUES (x, str);
    END WHILE;
END$$
DELIMITER;

空格后:

DELIMITER $$
CREATE PROCEDURE test_a_loop()
BEGIN
    DECLARE x  INT;
    DECLARE str  VARCHAR(255);   
    SET x = 0;
    SET str =  '';
    WHILE x < 5 DO
    SET x = x + 1;
    SET str =  CONCAT('num-', x);
    INSERT INTO a_loop (id,num) VALUES (x, str);
    END WHILE;
END$$
DELIMITER ;

关于mysql - while 程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36687558/

相关文章:

mysql - SQL 是否可以在 GRANT SELECT 语句中添加 WHERE 子句?

java - 虽然延迟为真

Java while循环问题

c - 使用 Viete 的公式在 C 中逼近 pi 的值

java - 简单的校验和算法

php - MYSQL 检查任一表中是否存在值 : login script

mysql - 将 mySQL 触发器转换为 SQL

mysql - 如何在My SQL中返回某个日期之前的NULL历史记录

mysql - 将数据库中的内容添加到struts2中的下拉列表中

python - 如何模拟 do-while 循环?