Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL ha detto:#1415 - Non è consentito restituire un set di risultati da una funzione

Il messaggio di errore in questo caso indica la parte più importante:

Questo comportamento è coerente con quanto documentato nel manuale MySQL sulle procedure e le funzioni memorizzate:

Assegna valori al tuo @Pn variabili che utilizzano istruzioni select che restituiscono un set di risultati e questo non è consentito in una funzione. Devi rimuovere queste istruzioni dal tuo codice. RETURN river restituisce un risultato valore , ma non un risultato impostato .

Sono anche preoccupato che tu usi variabili di sessione (variabili definite come @nome_variabile) che sono condivise su una connessione, quindi potenzialmente più chiamate alla stessa funzione contemporaneamente all'interno di una connessione potrebbero interferire tra loro.

Una funzione memorizzata dovrebbe restituire solo un singolo valore come output con il return dichiarazione. Qualsiasi altra cosa è considerata un effetto collaterale. Se vuoi che il tuo script MySQL popoli più variabili, devi utilizzare una procedura memorizzata, non è possibile utilizzare una funzione memorizzata.