pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Leif B. Kristensen <leif@solumslekt.org>
To: pgsql-sql@postgresql.org
Subject: Re: Triggers
Date: Tue, 22 Nov 2005 16:44:35 +0100
Message-ID: <200511221644.35656.leif@solumslekt.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0511221825001.24697-100000@matrix.gatewaynet.com>
References: <Pine.LNX.4.44.0511221825001.24697-100000@matrix.gatewaynet.com>

On Tuesday 22 November 2005 17:25, Achilleus Mantzios wrote:
>O Leif B. Kristensen Ýãñáøå óôéò Nov 22, 2005 :
>> I'm trying to understand triggers. I have read the documentation in
>> the manual as well as the few pages in the Douglas book about the
>> subject, but I don't see how to implement a trigger that simply
>> updates a 'last_edit' date field in my 'persons' table whenever I do
>> an insert or update into my 'participants' table; that is a trigger
>> that basically does an "UPDATE persons SET 'last_edit' = NOW() WHERE
>> persons.person_id = participants.person_fk". Is that even possible?
>
>smth like:
>foodb=# CREATE or REPLACE FUNCTION upd_dad() RETURNS "trigger" AS '
>foodb'# BEGIN
>foodb'# UPDATE dad set lastedit=now() where id=new.dadid;
>foodb'# RETURN new;
>foodb'# END;
>foodb'# '
>foodb-# LANGUAGE plpgsql;
>CREATE FUNCTION
>foodb=# CREATE TRIGGER upd_dad_tg AFTER INSERT OR UPDATE ON kid FOR
> EACH ROW EXECUTE PROCEDURE upd_dad();

leif=> create or replace function update_last_edit() returns trigger as 
$$
leif$> begin
leif$> update persons set last_edit=now() where person_id=new.person_fk;
leif$> return new;
leif$> end;
leif$> $$ language plpgsql;
CREATE FUNCTION
leif=> create trigger update_last_edit after insert or update on 
participants
leif-> for each row execute procedure update_last_edit();
CREATE TRIGGER
leif=> insert into participants (participant_id,person_fk) values (1,1);
ERROR:  record "new" has no field "last_edit"
CONTEXT:  PL/pgSQL function "process_last_edited" line 2 at assignment
leif=> 

What am I missing?
-- 
Leif Biberg Kristensen | Registered Linux User #338009
http://solumslekt.org/ | Cruising with Gentoo/KDE



view thread (34+ messages)  latest in thread

Message-ID: <200511221644.35656.leif@solumslekt.org>
Permalink:  ../200511221644.35656.leif@solumslekt.org/
Also on:    postgresql.org/message-id/200511221644.35656.leif@solumslekt.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: leif@solumslekt.org
  Subject: Re: Triggers
  In-Reply-To: <200511221644.35656.leif@solumslekt.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox