Bạn đã kết thúc toàn bộ truy vấn chưa? Thử đặt dấu phân cách và sử dụng nó sau khi KẾT THÚC để máy chủ biết bạn đã hoàn thành lệnh.
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 ;
Cũng bởi
Trong khi DELETE FROM TABLE
xóa tất cả dữ liệu khỏi bảng, TRUNCATE table
làm như vậy nhanh hơn. Trừ khi bạn có lý do chính đáng để sử dụng DELETE
(chúng tồn tại), TRUNCATE
có thể là những gì bạn muốn.