Thread: UNIQUE_VIOLATION exception, finding out which index would have been violated

UNIQUE_VIOLATION exception, finding out which index would have been violated

From
Petri Simolin
Date:
Greetings list,

I have created a function which inserts a row in a table which has 2 unique
indexes on two different columns.

I am wondering, if there is a way in case of UNIQUE_VIOLATION exception to
find out which index would have been violated?

Petri Simolin



Re: UNIQUE_VIOLATION exception, finding out which index would have been violated

From
Michael Fuhr
Date:
On Tue, Sep 25, 2007 at 04:55:37AM -0200, Petri Simolin wrote:
> I have created a function which inserts a row in a table which has 2 unique
> indexes on two different columns.
>
> I am wondering, if there is a way in case of UNIQUE_VIOLATION exception to
> find out which index would have been violated?

In PL/pgSQL you could extract the constraint name from SQLERRM,
which should be a string like 'duplicate key violates unique
constraint "foo_id1_key"'.

--
Michael Fuhr