Как создавать и выполнять процедуры в рабочей среде MySQL

Я создал пространственную таблицу Points с помощью редактора SQL в рабочей среде MySQL. Чтобы заполнить эту таблицу, следующий код, который я использую.

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 

когда я выполнил его, он показывает ошибку

Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверить руководство, соответствующее вашей версии сервера MySQL для правильный синтаксис для использования рядом с 'END' в строке 1

Выполнение оператора

CALL fill_points(1000);

показывает ту же ошибку

Я даже не знаю, правильно ли я поступаю.

Кто-нибудь может мне помочь...

7
задан Arion 10 April 2012 в 07:05
поделиться