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.