Thread: After update complete set

After update complete set

From
Josué Maldonado
Date:
Hello list,

Is there a way in pg to fire a function when a complete (not row by row)
set is updated/inserted/deleted, for instance.

update order_detail set confirmed='S' where modifieddate=current_date;

Then after all the affected rows are updated, I need some code to
uptaded other tables from the information of the updated rows in the
details table.

Thanks in advance.

--
Sinceramente,
Josué Maldonado.

"Cuando los ricos se hacen la guerra, son los pobres los que mueren."
Jean Paul Sartre. Filósofo y escritor francés.

Re: After update complete set

From
DeJuan Jackson
Date:
Josué Maldonado wrote:

> Hello list,
>
> Is there a way in pg to fire a function when a complete (not row by
> row) set is updated/inserted/deleted, for instance.
>
> update order_detail set confirmed='S' where modifieddate=current_date;
>
> Then after all the affected rows are updated, I need some code to
> uptaded other tables from the information of the updated rows in the
> details table.
>
> Thanks in advance.
>
I'm interested in other's responce to this question as well.
I recently had to implement an equivelent trigger mechanism.
My solution consist of the following steps:
  create an intermediate table to hold the minimum data needed for
single action trigger.
  create a before trigger on insert, update, and delete which inserts
the needed data from the NEW construct if in insert or update and
inserts the needed data from OLD if in update or delete with a check for
prior existance (by the end of transaction this table is emptied).
  create an after insert trigger on the intermediate table to perform
withever action is needed on the data, then delete the specific row in
the intermediate table.

The intermediate table would have a primary key which could be imposed
by a sequence (which I would set to cycle, so as long as you don't have
2^32, simultaneous transactions updating the base table you should be fine).

Hope this helps.


Re: After update complete set

From
Tom Lane
Date:
=?ISO-8859-1?Q?Josu=E9_Maldonado?= <josue@lamundial.hn> writes:
> Is there a way in pg to fire a function when a complete (not row by row)
> set is updated/inserted/deleted,

Perhaps you want an AFTER STATEMENT trigger?  Those are supported as of
7.4.

            regards, tom lane