1
resposta

[Dúvida] Erro 1418 na criação da função

Olá!

Estou com dificuldade na criação da function do exercício. O seguinte erro aparece:

*Error 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe logbintrustfunctioncreators variable) *

CREATE FUNCTION `f_numero_aleatorio` (min INT, max INT)
RETURNS INTEGER
BEGIN
   DECLARE vRetorno INT;
   SELECT  FLOOR((RAND() * (max-min+1)) + min) INTO vRetorno;
RETURN vRetorno;
END
1 resposta

Oi Luiza, feliz ano novo!

O seu código parece correto, no entanto, parece que você habilitou a feature "binary logging" no seu MySQL e isso está impedindo que você crie a função. Apenas para confirmar se este é o caso, tente adicionar o comando "READS SQL DATA" conforme abaixo e confirme se consegue criar:

CREATE FUNCTION `f_numero_aleatorio` (min INT, max INT)
RETURNS INTEGER
**READS SQL DATA**
BEGIN
   DECLARE vRetorno INT;
   SELECT FLOOR((RAND() * (max-min+1)) + min) INTO vRetorno;
RETURN vRetorno;
END;