"Marc Mamin" <M.Mamin@intershop.de> writes:
> I've a table with 1 primary key and 1 unique index.
> I would like to handle differently the duplicate key violations
> depending on which constraints are affected.
> (Within a plpgsql CATCH block, using SQLERRM).
> It seems, that when both constraints would be violated, the exception is
> always about the primary key.
> Can I rely on that or should I expect the exception order being random ?
Offhand I think the indexes will be inserted into in OID order, which
would typically be creation order, except after a wraparound. If you
rely on this you can expect your code to break sooner or later.
regards, tom lane