Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erstellen und führen Sie Prozeduren in der MySQL-Workbench aus

Haben Sie die gesamte Abfrage beendet? Versuchen Sie, ein Trennzeichen festzulegen , und verwenden Sie es nach dem END, damit der Server weiß, dass Sie den Befehl beendet haben.

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 ;

Auch übrigens

Während DELETE FROM TABLE entfernt alle Daten aus der Tabelle TRUNCATE table geht damit schneller. Es sei denn, Sie haben gute Gründe, DELETE zu verwenden (es gibt sie), TRUNCATE könnte das sein, was Sie wollen.