sql >> Databáze >  >> RDS >> Mysql

MySQL řekl:#1415 - Není povoleno vrátit sadu výsledků z funkce

Chybová zpráva v tomto případě říká nejdůležitější část:

Toto chování je v souladu s tím, co je zdokumentováno v příručce MySQL o uložených procedurách a funkcích:

Hodnoty přiřadíte svému @Pn proměnné pomocí příkazů select, které vracejí sadu výsledků, a to není ve funkci povoleno. Tyto příkazy musíte ze svého kódu odstranit. RETURN river vrátí výslednou hodnotu , ale nikoli sada výsledků .

Také se obávám, že používáte proměnné relace (proměnné definované jako @název_proměnné), které jsou sdíleny v rámci připojení, takže potenciálně vícenásobné volání stejné funkce ve stejnou dobu v rámci připojení se může navzájem rušit.

Uložená funkce má jako výstup vrátit pouze jednu hodnotu s return tvrzení. Cokoli jiného je považováno za vedlejší účinek. Pokud chcete, aby váš skript MySQL naplnil více proměnných, pak musíte použijte uloženou proceduru, nemůžete použít uloženou funkci.




  1. Tipy pro poskytování výkonu databáze MySQL – část první

  2. Operace není platná pro stav chyby transakce a rozsah transakce

  3. Vložení a aktualizace na základě záznamu v Oracle

  4. Jak najít adresář dat mysql z příkazového řádku v systému Windows