As a query, this returns different values each execution:
SELECT FLOOR(200000000000 + (RAND() * 100000000000))
Writing a function which does the same (To be called from a stored procedure):
DROP FUNCTION if exists setRandomNumber//
CREATE FUNCTION setRandomNumber()
RETURNS INT
BEGIN
DECLARE rand INT DEFAULT 0;
SELECT FLOOR(200000000000 + (RAND() * 100000000000)) INTO rand;
RETURN rand;
END//
Always yields the same number:
SELECT setRandomNumber();
yields:
setRandomNumber() 2147483647
setRandomNumber() 2147483647
setRandomNumber() 2147483647
setRandomNumber() 2147483647
And so on.
Is this a bug? How can I iteratively set more than one random number in a function or stored procedure?