sto provando con questa...
Codice PHP:
CREATE PROCEDURE test.HASH(IN len INT, IN counter INT)
READS SQL DATA
COMMENT ''
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DECLARE h VARCHAR(24);
SET @s = CONCAT('SELECT SUBSTRING(MD5(RAND()), -',len,') AS h');
SET i = 0;
DECLARE sql1 CURSOR FOR @s;
CREATE TEMPORARY TABLE IF NOT EXISTS `hashes` (
`id` int(10) NOT NULL auto_increment,
`hash` varchar(24) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `hash` (`hash`)
);
OPEN sql1;
hash_loop: LOOP
FETCH sql1 INTO h;
INSERT IGNORE INTO hashes VALUES( h );
SET i = i+1;
IF i=counter THEN
SET done=1;
LEAVE hash_loop;
END IF;
END LOOP hash_loop;
CLOSE sql1;
SELECT * FROM hashes;
DROP TABLE hashes;
END;
ma mi restituisce MySql error number 1064: errore di sintassi vicino declare sql1.....