Lists: | pgsql-general |
---|
From: | "Marc Mamin" <M(dot)Mamin(at)intershop(dot)de> |
---|---|
To: | <pgsql-general(at)postgresql(dot)org> |
Subject: | 2 x duplicate key value violation: which exception comes first ? |
Date: | 2012-03-01 13:41:58 |
Message-ID: | C4DAC901169B624F933534A26ED7DF310861B40D@JENMAIL01.ad.intershop.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
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
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Marc Mamin" <M(dot)Mamin(at)intershop(dot)de> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: 2 x duplicate key value violation: which exception comes first ? |
Date: | 2012-03-01 21:47:43 |
Message-ID: | 18308.1330638463@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
"Marc Mamin" <M(dot)Mamin(at)intershop(dot)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