Re: Referencing external table in update/insert triggers

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Referencing external table in update/insert triggers
Дата
Msg-id 4B7D0704.70301@archonet.com
обсуждение исходный текст
Ответ на Referencing external table in update/insert triggers  (Amitabh Kant <amitabhkant@gmail.com>)
Ответы Re: Referencing external table in update/insert triggers  (Amitabh Kant <amitabhkant@gmail.com>)
Список pgsql-sql
On 17/02/10 15:18, Amitabh Kant wrote:
>
> CREATE OR REPLACE FUNCTION update_data() RETURNS TRIGGER AS $update_data$
> BEGIN
>      IF NEW.t1f4>  t2.t2f4
>          UPDATE t2 set t2f2=NEW.t1f2, t2f3=NEW.t1f3, t2f4=NEW.t1f4 where
> t2f1=NEW.d1;
>          RETURN NEW;
>      END IF;
> END;
> $update_data$ LANGUAGE plpgsql;

> I would like to compare the date present in the t2f4 with the new data being
> updated through the trigger.  Using the if line as listed above returns an
> error.

You can always do something like:  SELECT t2.t2f4 INTO my_variable FROM t2 WHERE ...  IF NEW.t1f4 > my_variable

However, for this case you can just do an update with an extended where 
clause:  UPDATE t2 ... WHERE t2f1=NEW.d1 AND NEW.t1f4 > t2.t2f4

No need for the IF.

--   Richard Huxton  Archonet Ltd


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

Предыдущее
От: Achilleas Mantzios
Дата:
Сообщение: Re: very frustrating feature-bug
Следующее
От: Amitabh Kant
Дата:
Сообщение: Re: Referencing external table in update/insert triggers