sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar och utför procedurer i MySQL arbetsbänk

Har du avslutat hela frågan? Testa att ställa in en avgränsare , och använd den efter END så att servern vet att du avslutade kommandot.

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 ;

Också av by

Medan DELETE FROM TABLE tar bort all data från tabellen, TRUNCATE table gör det snabbare. Såvida du inte har goda skäl att använda DELETE (de finns), TRUNCATE kan vara vad du vill ha.




  1. Använda MySQL-replikering (Master/Slave) med MyBatis

  2. Hur man ansluter en databas till Python

  3. Sammanfoga flera rader i en kolumn med en funktion i Oracle med 3 relaterade tabeller

  4. Frågan går snabbt i Query Analyzer men långsamt i C#-applikationen