Re: trigger: NEW/OLD-error or nothing happens

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: trigger: NEW/OLD-error or nothing happens
Дата
Msg-id 003001c1072f$0dbd6d60$0205a8c0@jecw2k1
обсуждение исходный текст
Ответ на trigger: NEW/OLD-error or nothing happens  (Knut Suebert <knut.suebert@web.de>)
Ответы Re: trigger: NEW/OLD-error or nothing happens  (Knut Suebert <knut.suebert@web.de>)
Список pgsql-general
> create function nac_viceversa() returns opaque as'
> begin
> NEW.minport := nacmin(OLD.sport,OLD.dport);
> NEW.maxport := nacmax(OLD.sport,OLD.dport);
> return NEW;
> end;
> 'language 'plpgsql';
>
> create trigger nac_update after insert or update on traf
> for each row execute procedure nac_viceversa();
>
> but than
>
> ERROR:  record old is unassigned yet
>
> if i take NEW. instead of OLD.: no errors -- but minport and maxport
> are empty after insert. (could it be that OLD makes no sense on
> insert? I'd lie if I'd say that I understood the conecpt, but
> databases are hard stuff for me even in my native language)

OLD does not make sense on an insert because there is no "OLD" data for a
brand new row. Similarly, there is no "NEW" data during a delete. See
http://www.postgresql.org/idocs/index.php?plpgsql-trigger.html

NEW
Data type RECORD; variable holding the new database row on INSERT/UPDATE
operations on ROW level triggers.

OLD
Data type RECORD; variable holding the old database row on UPDATE/DELETE
operations on ROW level triggers.

Hope this helps,

Joe



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

Предыдущее
От: Knut Suebert
Дата:
Сообщение: trigger: NEW/OLD-error or nothing happens
Следующее
От: "Peter C. A. Bär"
Дата:
Сообщение: Re: A quick SUSE question...