| From: | Craig Ringer <craig(at)postnewspapers(dot)com(dot)au> |
|---|---|
| To: | x asasaxax <xanaruto(at)gmail(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: SQL error |
| Date: | 2008-04-19 15:08:06 |
| Message-ID: | 480A0AD6.9020405@postnewspapers.com.au |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
x asasaxax wrote:
> HI everyone,
>
>
> I´m trying to capture all the possible errors that a statement can have.
> And, if there´s any error i will do a rollback; What i´m trying to do its:
> BEGIN
> insert into temp values(1, 2, 3);
> IF ANY_ERROR_OCCURED THEN
> ROLLBACK;
> RETURN FALSE;
> END IF;
> END;
>
> Did anyone knows how can i do that?
>
Use a PL/pgSQL stored procedure. PostgreSQL does not support ad-hoc
blocks or unnamed procedures, but it's OK to create the procedure, use
it, and drop it again.
http://www.postgresql.org/docs/current/static/plpgsql.html
and particularly:
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
However, the EXCEPTION blocks you use to trap errors aren't free in
performance terms, so you should probably look for other approaches first.
--
Craig Ringer
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2008-04-19 15:17:05 | Re: SQL error |
| Previous Message | Martijn van Oosterhout | 2008-04-19 15:07:23 | Re: SQL error |