sql >> Databáze >  >> RDS >> Mysql

Jak vytvářet a spouštět procedury v MySQL workbench

Ukončili jste celý dotaz? Zkuste nastavit oddělovač a použijte jej za END, aby server věděl, že jste dokončili příkaz.

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 ;

Také podle

Zatímco DELETE FROM TABLE odstraní všechna data z tabulky, TRUNCATE table dělá tak rychleji. Pokud nemáte dobré důvody pro použití DELETE (existují), TRUNCATE může být to, co chcete.




  1. Řazení desetinných míst v PHP nebo MySQL

  2. Periodic InvalidCastException a Serveru se nepodařilo obnovit transakci s Linq

  3. Rails a MySQL - ActiveRecord::ConnectionNotEstablished v produkčním prostředí

  4. mysqldump na vzdáleném serveru