MYSQL声明变量

我不明白这个脚本有什么问题

BEGIN

DECLARE crs INT DEFAULT 0;

WHILE crs < 10 DO

INSERT INTO `continent`(`name`) VALUES ('cont'+crs)

SET crs = crs + 1;

END WHILE;

END;

我希望它在表中插入10个值,但是第二行有错误。

回答:

MySQL不支持执行存储过程代码的匿名块。

您需要创建一个包含该代码的存储过程,然后调用它。

另外,您在插入语句的末尾缺少分号。我修好了 您可能还想使用concat()而不是+来生成名称,但是我将把更改留给您。

创建过程:

DELIMITER $$

DROP PROCEDURE IF EXISTS insert_ten_rows $$

CREATE PROCEDURE insert_ten_rows ()

BEGIN

DECLARE crs INT DEFAULT 0;

WHILE crs < 10 DO

INSERT INTO `continent`(`name`) VALUES ('cont'+crs);

SET crs = crs + 1;

END WHILE;

END $$

DELIMITER ;

调用过程:

CALL insert_ten_rows();

以上是 MYSQL声明变量 的全部内容, 来源链接: utcz.com/qa/428821.html

回到顶部