| 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: | Whole Thread | Raw Message | 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
| 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?? |