Har du afsluttet hele forespørgslen? Prøv at indstille en afgrænser , og brug det efter SLUT, så serveren ved, at du afsluttede kommandoen.
delimiter //
CREATE PROCEDURE fill_points(
IN size INT(10)
)
BEGIN
DECLARE i DOUBLE(10,1) DEFAULT size;
DECLARE lon FLOAT(7,4);
DECLARE lat FLOAT(6,4);
DECLARE position VARCHAR(100);
-- Deleting all.
DELETE FROM Points;
WHILE i > 0 DO
SET lon = RAND() * 360 - 180;
SET lat = RAND() * 180 - 90;
SET position = CONCAT( 'POINT(', lon, ' ', lat, ')' );
INSERT INTO Points(name, location) VALUES ( CONCAT('name_', i), GeomFromText(position) );
SET i = i - 1;
END WHILE;
END //
delimiter ;
Også af by
Mens DELETE FROM TABLE fjerner alle data fra tabellen, TRUNCATE table gør det hurtigere. Medmindre du har gode grunde til at bruge DELETE (de findes), TRUNCATE kan være, hvad du ønsker.