RE: Trigger
От | Jeff Eckermann |
---|---|
Тема | RE: Trigger |
Дата | |
Msg-id | 08CD1781F85AD4118E0800A0C9B8580B094B04@NEZU обсуждение исходный текст |
Ответ на | Trigger ("Andy Samuel" <andysamuel@geocities.com>) |
Список | 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@geocities.com] > Sent: Friday, June 29, 2001 12:39 AM > To: pgsql-general@postgresql.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
В списке pgsql-general по дате отправления: