首页 > 解决方案 > 如何在postgresql中创建函数选择所有列

问题描述

如何在 PgAdmin 中创建一个选择表中所有列的函数(存储过程/存储函数)?同样像这样。

CREATE OR REPLACE FUNCTION GetAllUsers(IN userno integer)
  RETURNS TABLE(all column) AS
$BODY$
BEGIN 

    RETURN QUERY    
        SELECT  *
        FROM Users W 
        WHERE w.UserNo = GetAllUsers.userno;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION GetAllUsers(integer)
  OWNER TO postgres;

标签: postgresqlstored-functions

解决方案


您可以使用returns setof users而不是returns table (...)

你也不需要昂贵的 PL/pgSQL 函数。一个普通的 SQL 函数就足够了:

CREATE OR REPLACE FUNCTION getallusers(p_userno integer)
  RETURNS setof users
$BODY$
   SELECT *
   FROM users 
   WHERE userno = p_userno;
$BODY$
  LANGUAGE sql VOLATILE
  COST 100
  ROWS 1000;

推荐阅读