重命名存储函数的列名

Rename the column name of a stored function

我有一个 postgresql 存储过程,它是 returning 一个整数。 当我调用该函数时,结果是 returned 函数名称作为列名称。

例如函数的名称是:"add-person"。调用函数时的列名是"add-person".

有没有办法使数据库 return 具有自选列名的整数?例如 "id"?

我认为这很容易,但我现在只见树木不见森林..

编辑: 我想说的是,return 值是一个变量,如下所示:

CREATE OR REPLACE FUNCTION "scheme"."add-person"(arggivenname character varying, argfamilyname character varying) RETURNS integer AS
$BODY$

DECLARE
  varResponse integer;

BEGIN
-- Operations before

INSERT INTO "scheme"."table"
(
  given_name,
  family_name
)
VALUES
(
  arggivenname,
  argfamilyname
)
RETURNING
  "id"
INTO
  varResponse;

-- Operations after

RETURN varResponse;

END;

$BODY$

LANGUAGE plpgsql VOLATILE COST 100;

您可以为此使用 AS 语句。这意味着:

     Select add-person() AS yourcolumnname

要从函数中获得命名列,必须创建 type 和 return,type 来自函数

create type mytype as (mycolumn integer);

create or replace function ri()
returns mytype as $$
select 1;
$$ language sql;

select * from ri();
 mycolumn 
----------
        1

编辑

或者像@pozs 评论中那样没有 type 创建就更简单了:

create or replace function ri(out mycolumn integer)
as $$
select 1;
$$ language sql;