Heb je de hele zoekopdracht beëindigd? Probeer een scheidingsteken in te stellen , en gebruik het na de END zodat de server weet dat je de opdracht hebt voltooid.
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 ;
Ook bij de door
Terwijl DELETE FROM TABLE
verwijdert alle gegevens uit de tabel, TRUNCATE table
doet dat sneller. Tenzij je goede redenen hebt om DELETE
te gebruiken (ze bestaan), TRUNCATE
is misschien wat je wilt.