| 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: | Whole Thread | Raw Message | 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 |