From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Cristian Custodio <crstian(at)terra(dot)com(dot)br> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Mutating table (urgent) |
Date: | 2003-02-21 18:33:57 |
Message-ID: | 20030221103303.L59965-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, 21 Feb 2003, Cristian Custodio wrote:
> 3) Creating trigger on principal table
> CREATE OR REPLACE FUNCTION TR_AIPAI() RETURNS OPAQUE AS '
> BEGIN
> INSERT INTO FILHO (CODPAI, NOMFIL) VALUES (NEW.CODPAI, ''FILHO DO PAI''||NEW.CODPAI);
> RETURN NULL;
> END;
> ' language 'plpgsql';
>
> CREATE TRIGGER AIPAI AFTER INSERT ON PAI FOR EACH ROW EXECUTE PROCEDURE TR_AIPAI();
>
> If we taking a insert on principal table it will insert on child table,
> until here, thats all right...
>
> 4) Create a trigger on child table that make a select on principal table
> CREATE OR REPLACE FUNCTION TR_SELECT_PAI() RETURNS OPAQUE AS'
> DECLARE I INTEGER;
> BEGIN
> SELECT COUNT(*) INTO I FROM PAI;
> RETURN NULL;
> END;
> 'language 'plpgsql';
>
> CREATE TRIGGER BIFILHO BEFORE INSERT ON FILHO FOR EACH ROW EXECUTE PROCEDURE TR_SELECT_PAI();
By returning NULL in a BEFORE trigger you're saying to drop the request on
the floor.
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2003-02-21 18:35:43 | Re: A problem with sequences... |
Previous Message | Doug McNaught | 2003-02-21 18:26:20 | Re: transactions |