RE: Trigger

From: Jeff Eckermann <jeckermann(at)verio(dot)net>
To: "'Andy Samuel'" <andysamuel(at)geocities(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: RE: Trigger
Date: 2001-06-29 14:29:27
Message-ID: 08CD1781F85AD4118E0800A0C9B8580B094B04@NEZU
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Use conditional logic in your function:

CREATE FUNCTION set_defval ()
RETURNS opaque AS '
BEGIN
IF NEW.fieldid = ''MODULESTATUS''
THEN NEW.defval := ''OFF'';
END IF;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER default_value_set_defval
BEFORE UPDATE ON default_value
FOR EACH ROW EXECUTE PROCEDURE set_defval();

The trigger will fire for all updates, but will be a no-op for all cases
which don't meet your criterion.
This will create a small performance penalty, but probably not enough to be
noticeable.
I don't think there is a way to have a trigger fire selectively on a given
event.
HTH

> -----Original Message-----
> From: Andy Samuel [SMTP:andysamuel(at)geocities(dot)com]
> Sent: Friday, June 29, 2001 12:39 AM
> To: pgsql-general(at)postgresql(dot)org
> Subject: [GENERAL] Trigger
>
> How do I create a trigger on a table if a certain row is updated ?
> For example, a table called DefaultValue with :
> ModuleId char(10),
> FieldId char(10),
> DefVal char(3)
>
> If I update the table 'update DefaultValue set defval='OFF' where
> FieldId='MODULESTATUS' then it will fire the event.
>
> Thank you in advance
> Andy
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

Browse pgsql-general by date

  From Date Subject
Next Message Thalis A. Kalfigopoulos 2001-06-29 14:29:31 Re: Trigger
Previous Message Janning Vygen 2001-06-29 13:53:10 function cache??