| From: | "Raigo Lukk" <l950681(at)ttu(dot)ee> |
|---|---|
| To: | pgsql-general(at)hub(dot)org |
| Subject: | Re: Trigger |
| Date: | 2000-03-08 13:08:07 |
| Message-ID: | 77360C5D27.AAA1517@mail.ttu.ee |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Hi
I sent this message already, but did not get it back from list. So I
aplogise if somebody gets it two times.
> twice inside of one transaction (WRT key changes), it's possible to
> fool the trigger and end up with inconsistent data in a multiuser
> environment.
OK let's assume that customer is not deleted while order is
enetered. At my work I have used InterBase quite a lot. Up to IB 5
there was also no foreign keys, so it had to be done with triggers
just like in PostgreSQL. So when using IB 4 I usually did
something like this:
CREATE EXCEPTION CHILD_INSERT_RESTRICT "Cannot
INSERT ORDER because CUSTOMER does not exist in
CUSTOMER table";
CREATE TRIGGER BI_ORDER FOR ORDER BEFORE INSERT
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
select count(distinct CustomerID)
from customer
where CustomerID=NEW.CustomerID
into numrows;
IF (numrows = 0 ) THEN
BEGIN
EXCEPTION CHILD_INSERT_RESTRICT;
END
END
I think there is some small syntax differences in PostgreSQL.
So, can somebody please put this into PostgreSQL syntax for me?
I searched the manuals but found no Exeption ... is it possible to
use Exceptions in PostgreSQL?
Also, does there excist special aliases like NEW and OLD in
PostgreSQL?
Thanks
Raigo
| From | Date | Subject | |
|---|---|---|---|
| Next Message | frank | 2000-03-08 13:40:00 | [GENERAL] Accounting/inventory systems |
| Previous Message | Gabriel Fernandez | 2000-03-08 12:45:59 | psql frontend: up arrow key and history utility |