Re: triggers using row values - Mailing list pgsql-general

From Stephan Szabo
Subject Re: triggers using row values
Date
Msg-id 20030403112815.H82289-100000@megazone23.bigpanda.com
Whole thread Raw
In response to triggers using row values  (Clarence Gardner <clarence@silcom.com>)
List pgsql-general
On Thu, 3 Apr 2003, Clarence Gardner wrote:

> I'm trying to create a trigger which will pass a value from the row
> into the procedure to execute. All the documentation I can find shows
> only constant arguments being passed. For example,
>     CREATE TRIGGER if_dist_exists
>     BEFORE INSERT OR UPDATE ON films FOR EACH ROW
>     EXECUTE PROCEDURE check_primary_key ('did', 'distributors', 'did');
>
> That doesn't seem very useful. Here's what I'm trying:
> netbill=> create trigger set_stale_1
> netbill->   after insert or update or delete on dns_a for each row
> netbill->   execute procedure set_zone_stale(zid);
> ERROR:  CreateTrigger: function set_zone_stale() does not exist
>
> I have a function defined as set_zone_stale(int). How can I call
> it using the zid field from the changed record?

Generally you get a copy of the NEW and OLD (if applicable) rows in your
function.  In plpgsql triggers, they're named NEW and OLD, so you can
say things like NEW.zid inside the trigger function.

Also, trigger functions take no arguments (the standard way - the
arguments passed at create trigger time are separate).


pgsql-general by date:

Previous
From: Lamar Owen
Date:
Subject: Re: [NOVICE] Postgres Syslog
Next
From: "John Wells"
Date:
Subject: SAPdb vs. Postgresql