Can someone politely explain this crazyness?
INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "UserProfileId" INTO _UserProfileId;
throws an ambiguous reference error, however this correctly executes:
INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "dbo"."UserProfile"."UserProfileId" INTO _UserProfileId;
_UserProfileId is a declared integer variable. I couldn't find any references to this syntax in the manual or why on earth this would be ambiguous in any way.
Erwin Brandstetter
IN and OUT parameters (including columns in RETURNS TABLE) are visible inside every SQL command in the body of a plpgsql function.
If you have columns of the same name in your query, you have to table-qualify them to make it unambiguous. In your case, the table name would do:
... RETURNING "UserProfile"."UserProfileId" INTO _UserProfileId;
Related:
来源:https://stackoverflow.com/questions/39261902/postgresql-insert-returning-into-ambiguous-column-reference