9.1 Trigger question

From: Michael Black <michaelblack75052(at)hotmail(dot)com>
To: <pgsql-general(at)postgresql(dot)org>
Subject: 9.1 Trigger question
Date: 2011-03-10 02:24:07
Message-ID: BLU144-W3419E20F5D0171802CCAA6FAC80@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


The following from 9.1 documentation on triggers ----

"SQL allows you to define aliases for the "old"
and "new" rows or tables for use in the definition
of the triggered action (e.g., CREATE TRIGGER ... ON
tablename REFERENCING OLD ROW AS somename NEW ROW AS othername
...). Since PostgreSQL
allows trigger procedures to be written in any number of
user-defined languages, access to the data is handled in a
language-specific way.
"

This seems to imply that triggers actually have to reference a function
rather than containing the actual code for the trigger to perform. For
example the only valid format of a trigger is to

CREATE TRIGGER view_insert
--- other parameters here ---
EXECUTE PROCEDURE view_insert_row();

Instead of the normal way

CREATE TRIGGER view_insert
--- other parameters here ---
AS
--- sql functions, conditions and statements ---
;

Is my understand in of this correct? If so, how does the other language know the old record from the new?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sean Hsien 2011-03-10 03:21:09 9.0 streaming replication problem
Previous Message hrsuprith 2011-03-10 02:12:58 Re: Detecting whether a point is in a box.