Re: Mutating table (urgent)

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.

In response to

Responses

Browse pgsql-general by date

  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