(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 ? -dvs-