Re: Firing triggers based on certain Insert conditions

Поиск
Список
Период
Сортировка
От Brendan Jurd
Тема Re: Firing triggers based on certain Insert conditions
Дата
Msg-id 37ed240d0701281024s1308f2c3u994a34aefe9ccdac@mail.gmail.com
обсуждение исходный текст
Ответ на Firing triggers based on certain Insert conditions  ("Harpreet Dhaliwal" <harpreet.dhaliwal01@gmail.com>)
Список pgsql-general
On 1/29/07, Harpreet Dhaliwal <harpreet.dhaliwal01@gmail.com> wrote:
>
> Hi
> I have a table in which i have a field named 'source'
> A trigger is written on this table.
> I want this trigger to fire only when after Insert this field 'source'
> has value = 'from', otherwise trigger should not be fired at all.
> Just wondering if its really possible?

AFAIK you can't prevent the trigger from firing, but you can make the
trigger behave differently based on what's in the fields of the new
row:

CREATE FUNCTION source_insert() RETURNS trigger AS $$
 BEGIN
  IF NEW.source = 'from' THEN

   /* do stuff */

  END IF;

  RETURN NULL;
 END;
$$ LANGUAGE plpgsql VOLATILE;

CREATE TRIGGER post_insert AFTER INSERT ON [your table name] FOR EACH
ROW EXECUTE PROCEDURE source_insert();

Regards,
BJ

В списке pgsql-general по дате отправления:

Предыдущее
От: Bill Moran
Дата:
Сообщение: Re: Limit on number of users in postgresql?
Следующее
От: "Harpreet Dhaliwal"
Дата:
Сообщение: Re: Firing triggers based on certain Insert conditions