MySQL no admite la ejecución de bloques anónimos de código de procedimiento almacenado.
Debe crear un procedimiento almacenado que incluya ese código y luego invocarlo.
Además, le faltaba el punto y coma al final de sus instrucciones de inserción. Lo arreglé También es probable que desee utilizar concat() en lugar de + para generar los nombres, pero le dejaré ese cambio.
Cree el procedimiento:
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 ;
invocar el procedimiento:
CALL insert_ten_rows();
'COMIENZO DECLARE INT CRS; SET @crs = 0; WHILE crs <10 DO INSERT INTO \ 'continent \' (\ 'name \') VALUES ('cont' + @ crs) SET @crs = crs + 1; FINALIZAR MIENTRAS; END; 'no funciona de esta manera tampoco – NiCU
asignar con': = ' – diEcho
el error que recibo dice que: # 1064 - Usted tiene un error en su sintaxis de SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'DECLARE @crs INT' – NiCU