Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL a dit :#1415 - Non autorisé à renvoyer un ensemble de résultats à partir d'une fonction

Le message d'erreur dans ce cas indique la partie la plus importante :

Ce comportement est cohérent avec ce qui est documenté dans le manuel MySQL sur les procédures et fonctions stockées :

Vous attribuez des valeurs à votre @Pn variables à l'aide d'instructions select qui renvoient un jeu de résultats, ce qui n'est pas autorisé dans une fonction. Vous devez supprimer ces instructions de votre code. RETURN river renvoie un résultat valeur , mais pas un ensemble de résultats .

Je crains également que vous utilisiez des variables de session (variables définies comme @variable_name) qui sont partagées sur une connexion, de sorte que plusieurs appels potentiels à la même fonction en même temps au sein d'une connexion peuvent interférer les uns avec les autres.

Une fonction stockée n'est censée renvoyer qu'une seule valeur en tant que sortie avec le return déclaration. Tout le reste est considéré comme un effet secondaire. Si vous souhaitez que votre script MySQL remplisse plusieurs variables, vous devez utiliser une procédure stockée, vous ne pouvez pas utiliser une fonction stockée.