Rule creation and evaluation order

From: Vincenzo Romano <vincenzo(dot)romano(at)gmail(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: Rule creation and evaluation order
Date: 2005-06-29 11:30:07
Message-ID: 200506291330.07522.Vincenzo.Romano@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi all.
I've already read the friendly manual but have not found any clue.

I would like to do some calculation on the rows of a table every time it
gets updated.
I've decided to use:

create table table1 (
afield integrer,
id integrer
);

create table table2 (
overall integer,
id integer unique not null,
primary key(id)
);

create rule myrule
as on update
to table1
do also
update table2
set overall=(select count(*) from table1 where afield>0 and
table1.id=NEW.id)
from table1
where table2.id = NEW.id
;

What it seems to me is that the table "table1 t1" is being processed *before*
the update and not *after*. Infact the sum() returns the old value.

Is this the expected behaviour?
How can I have my rule action run *after* the actual update?

Thanks to anyone that can help me.

--
Vincenzo Romano
--
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Michael Fuhr 2005-06-29 13:03:42 Re: Sstored Procedures
Previous Message Christoph Della Valle 2005-06-29 08:53:55 Re: posgres file