Thread: 2 x duplicate key value violation: which exception comes first ?
Hello,
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 ?
Thanks,
Marc Mamin
"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