david.sahag...@emc.com wrote: > (version == 9.1) > > In my PL/pgSQL stored functions, > I want to be able to distinguish which FK-constraint caused the [foreign_key_violation] exception. > . . . > BEGIN > delete from MY_COOL_TABLE where id = 123 ; > EXCEPTION > WHEN foreign_key_violation THEN > CASE > WHEN (SQLERRM tells me it blew up because of FK X) THEN . . . ; > WHEN (SQLERRM tells me it blew up because of FK Y) THEN . . . ; > WHEN (SQLERRM tells me it blew up because of FK Z) THEN . . . ; > END; > WHEN others THEN > raise; > END; > . . . > > Is a "robust enough" parsing of SQLERRM actually the best/only way to determine this ?
I think so. Not that it is particularly nice, though. It should be fairly robust to search for the name of the constraint in the error message. Yours, Laurenz Albe -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general