你知道为什么它不起作用吗?
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/