提供されたエラー: "エラー: 42601: 「レコード」を返す関数には列定義リストが必要です」は、PostgreSQL の作成時によく発生します。列構造を明示的に定義せずにレコードを返そうとする関数です。
このエラーを解決するには、RETURNS TABLE 構文を使用して構造を指定してください関数によって返されるデータ。次に例を示します。
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS TABLE ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
この例では、get_user_by_username 関数は、user_id、user_name、last_activity の 3 つの列を含むテーブルを返します。
または、次のように指定することもできます。 RETURNS SETOF を使用して関数によって返される特定の列は次のとおりです:
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS SETOF ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
留意すべき追加の考慮事項がいくつかあります:
以上がPostgreSQL がエラー 42601:「「レコード」を返す関数には列定義リストが必要です」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。