Postgresql - INSERT RETURNING INTO模糊列引用

时间:2016-09-01 02:42:30

标签: postgresql sql-insert plpgsql postgresql-9.3

有人可以礼貌地解释这种疯狂吗?

INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "UserProfileId" INTO _UserProfileId;

抛出一个模糊的引用错误,但这正确执行:

INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "dbo"."UserProfile"."UserProfileId" INTO _UserProfileId;

_UserProfileId是声明的整数变量。我在手册中找不到任何对这种语法的引用,或者为什么它在任何方面都是模棱两可的。

1 个答案:

答案 0 :(得分:3)

INOUT参数(包括RETURNS TABLE中的列)在plpgsql函数体内的每个SQL命令中都可见。

如果查询中有相同名称的列,则必须对其进行表格限定以使其明确无误。在您的情况下,表名称将执行:

... RETURNING "UserProfile"."UserProfileId" INTO _UserProfileId;

Details in the manual here.

相关: