如何在PostgreSql函数的返回表中设置标识列?
你不能也不需要如何在PostgreSql函数的返回表中设置标识列?,postgresql,stored-functions,set-returning-functions,Postgresql,Stored Functions,Set Returning Functions,你不能也不需要 identity不是数据类型,它是一个属性,用于描述插入未指定值的行时如何生成值。一旦生成并存储了列值,“identity”属性就没有意义了 因此,只需将结果列定义为integer CREATE OR REPLACE FUNCTION public."TestFunc" ( "param1" TEXT, "param2" TEXT ) RETURNS TABLE ( ---------How can I set identiy like
identity
不是数据类型,它是一个属性,用于描述插入未指定值的行时如何生成值。一旦生成并存储了列值,“identity”属性就没有意义了
因此,只需将结果列定义为integer
CREATE OR REPLACE FUNCTION public."TestFunc"
(
"param1" TEXT,
"param2" TEXT
)
RETURNS TABLE
(
---------How can I set identiy like that
"ID" integer GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1),
"Data" TEXT
)
AS $$
BEGIN
---body...
END;
$$ LANGUAGE plpgsql;
请给我报价。它们的麻烦远比它们的价值大。
返回表
并不意味着函数将创建一个表。这只是意味着结果看起来像一个表,也就是说,有几行。此表不是持久性的,因此指定在其中插入行时应该发生什么是没有意义的。我没有设置“ID”,我想自动增加它。我该怎么做?@İlyasDerse:您需要在代码(主体--部分)中执行该操作,在代码中生成该函数的结果。
CREATE OR REPLACE FUNCTION public."TestFunc"
(
"param1" TEXT,
"param2" TEXT
)
RETURNS TABLE
(
"ID" integer,
"Data" TEXT
)
AS $$
BEGIN
---body...
END;
$$ LANGUAGE plpgsql;