重命名存储函数的列名

时间:2015-02-10 12:13:20

标签: postgresql return columnname

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

例如,该功能的名称是:" add-person"。调用该函数时,列名是" add-person"。

有没有办法让数据库返回带有自选列名的整数?例如" id"?

我认为这很容易,但我现在想念树林......

编辑: 我错过的是,返回值是一个变量,如下所示:

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;

2 个答案:

答案 0 :(得分:2)

你可以为我们提供AS声明。这意味着:

     Select add-person() AS yourcolumnname

答案 1 :(得分:2)

要从函数中获取命名列,必须创建type并从函数中返回type

create type mytype as (mycolumn integer);

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

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

修改

或者在没有{@ 1}}创建的情况下更简单,如@pozs评论:

type