Re: loop on trigger

From: will trillich <will(at)serensoft(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: loop on trigger
Date: 2001-04-24 19:50:18
Message-ID: 20010424145018.E30699@serensoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Apr 18, 2001 at 10:06:01PM +0200, mgermoni(at)uniautomation(dot)it wrote:
> following your indication I found what I was looking for...Thank you.
>
> I made a simple trigger/function that:
> on insert check if a particular field is already on one table if not it
> will procede to make the insert otherwise not.
> But it goes on loop. Now just because I do not have experience, I'm
> wondering if it possible to do it without going in loop, because if the
> trigger is build up to get fired before the action and inside itself,
> actualy, there is again the continuos of the action it is called again
> and so on. There is a method to do without using the same table to
> do the control and then the action? In other words interception an
> insert to a specific table if the control is true to procede with the
> action itself without hitting any loop?

imo a better approach would be to create a view, and define an
insert rule that intercepts attempts to insert to that,
re-routing the data to the real table instead:

create table _real_stuff (
...
);

create view read_only as select * from _real_stuff;

create rule myInsert as
on insert to read_only
do instead
insert into _real_stuff (fieldlist)
values (NEW.this,NEW.that,NEW.one+NEW.two-NEW.three);

create rule myUpdate as
on update to read_only
do instead
update _real_stuff set
field1 = NEW.field1,
field2 = OLD.field3 - NEW.field72
where
primarykeyfield = NEW.primarykeyfield;

that way you won't trigger your own rule within your own rule
within your own rule within your own rule...

--
don't visit this page. it's bad for you. take my expert word for it.
http://www.salon.com/people/col/pagl/2001/03/21/spring/index1.html

will(at)serensoft(dot)com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!

In response to

Browse pgsql-general by date

  From Date Subject
Next Message will trillich 2001-04-24 19:59:38 Re: Insert data into multiple tables
Previous Message will trillich 2001-04-24 19:42:21 Re: append all columns in where-clause