Съобщението за грешка в този случай казва най-важната част:
Това поведение е в съответствие с това, което е документирано в ръководството на MySQL за съхранени процедури и функции:
Вие присвоявате стойности на вашия @Pn
променливи, използващи оператори за избор, които връщат набор от резултати и това не е позволено във функция. Трябва да премахнете тези твърдения от вашия код. RETURN river
връща резултатна стойност , но не и резултатнабор .
Освен това се притеснявам, че използвате сесийни променливи (променливи, дефинирани като @variable_name), които се споделят в една връзка, така че потенциално множество извиквания към една и съща функция едновременно в рамките на една връзка може да си пречат.
Съхранената функция трябва да връща само една стойност като своя изход с return
изявление. Всичко друго се счита за страничен ефект. Ако искате вашият MySQL скрипт да попълва множество променливи, тогава трябва използвате запомнена процедура, не можете да използвате запаметена функция.