この場合のエラーメッセージは、最も重要な部分を示しています。
この動作は、ストアドプロシージャと関数に関するMySQLマニュアルに記載されている内容と一致しています。
@Pn
に値を割り当てます 結果セットを返すselectステートメントを使用する変数。これは関数では許可されていません。これらのステートメントをコードから削除する必要があります。 RETURN river
結果の値を返します 、ただし結果ではありませんセット 。
また、接続全体で共有されるセッション変数(@variable_nameとして定義される変数)を使用することも心配です。そのため、接続内で同時に同じ関数を複数回呼び出すと、相互に干渉する可能性があります。
ストアド関数は、return
を使用して出力として単一の値のみを返すことになっています。 声明。それ以外のものは副作用と見なされます。 MySQLスクリプトに複数の変数を設定する場合は、必要 ストアドプロシージャを使用します。ストアド関数は使用できません。