Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL powiedział:#1415 – Nie wolno zwracać zestawu wyników z funkcji

Komunikat o błędzie w tym przypadku mówi najważniejszą część:

To zachowanie jest zgodne z tym, co udokumentowano w podręczniku MySQL dotyczącym procedur i funkcji składowanych:

Przypisujesz wartości do swojego @Pn zmienne używające instrukcji SELECT, które zwracają zestaw wyników, co jest niedozwolone w funkcji. Musisz usunąć te instrukcje z kodu. RETURN river zwraca wynik wartość , ale nie zestaw wyników .

Obawiam się również, że używasz zmiennych sesji (zmiennych zdefiniowanych jako @nazwa_zmiennej), które są współdzielone przez połączenie, więc potencjalnie wielokrotne wywołanie tej samej funkcji w tym samym czasie w ramach połączenia może zakłócać się nawzajem.

Przechowywana funkcja powinna zwracać tylko pojedynczą wartość jako dane wyjściowe w return oświadczenie. Wszystko inne jest uważane za efekt uboczny. Jeśli chcesz, aby Twój skrypt MySQL wypełniał wiele zmiennych, musisz użyć procedury składowanej, nie można użyć funkcji składowanej.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP_CONCAT separator przecinków - MySQL

  2. Jak naprawić błąd podczas wykonywania zdarzeń zmiany tabeli DDL upuść klucz obcy FKg0mkvgsqn8584qoql6a2rxheq za pomocą instrukcji JDBC

  3. Jak rozwiązać Ogólny błąd:serwer MySQL 2006 zniknął

  4. Wyświetlanie wszystkich nazw tabel w php z bazy danych MySQL

  5. Połącz się z wieloma bazami danych w CakePHP 3