我不明白这个脚本有什么问题
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();