Why not just do a SELECT to check for existence of the proposed insert
value, and go ahead only if NOT FOUND?
----- Original Message -----
From: "Francesco Casadei" <f_casadei@libero.it>
To: <pgsql-general@postgresql.org>
Sent: Monday, September 03, 2001 1:07 PM
Subject: [GENERAL] Catching errors inside a function
> I want to execute an INSERT query that may fail due to a primary key
constraint
> check. The primary key is on a field whose value is generated randomly by
> another C function.
> Is it possible to wrap the insert into a function that checks for failures
and
> retry the insert until success? Something like this:
>
> function blah
> {
> do {
> cod = generate code;
> execute insert with cod as primary key;
> } while (! errors);
> }
>
> I tried with SQL, PL/pgSQL and C functions but the backend aborts the
> transaction and stops execution of the function as soon as the error is
thrown.
> Is there a way to disable this behaviour?
>
> Thanks in advance for your help.
>
> Francesco Casadei
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>
>