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

MySQL sagde:#1415 - Ikke tilladt at returnere et resultatsæt fra en funktion

Fejlmeddelelsen i dette tilfælde fortæller den vigtigste del:

Denne adfærd er i overensstemmelse med det, der er dokumenteret i MySQL-manualen om lagrede procedurer og funktioner:

Du tildeler værdier til din @Pn variabler ved hjælp af udvalgte sætninger, der returnerer et resultatsæt, og dette er ikke tilladt i en funktion. Du skal fjerne disse udsagn fra din kode. RETURN river returnerer en resultat værdi , men ikke et resultat sæt .

Jeg er også bekymret over, at du bruger sessionsvariabler (variabler defineret som @variabelnavn), som deles på tværs af en forbindelse, så potentielt kan flere opkald til den samme funktion på samme tid inden for en forbindelse forstyrre hinanden.

En lagret funktion formodes kun at returnere en enkelt værdi som dens output med return udmelding. Alt andet betragtes som en bivirkning. Hvis du ønsker, at dit MySQL-script skal udfylde flere variabler, så skal bruge en lagret procedure, kan du ikke bruge en lagret funktion.




  1. Sådan opgraderes postgresql-database fra 10 til 12 uden at miste data til openproject

  2. installere Oracle Instantclient på Mac OS/X uden at indstille miljøvariabler?

  3. hvordan ændres CSS stilarter dynamisk ved hjælp af php/Mysql..jeg ønsker at skabe temaer, der er unikke for hver bruger?

  4. Vælg Records flere gange fra tabellen