我有一个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;
答案 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