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