триггер на insert or update, подскажите, как можно реализовать.

hash

Guest
триггер на insert or update, подскажите, как можно реализовать.

есть таблца:

CREATE TABLE phonestat (
phone_id serial NOT NULL,
numb character varying(6) NOT NULL,
begin_action date DEFAULT ('now'::text)::date NOT NULL,
end_action date, -- DEFAULT NULL
owner integer NOT NULL DEFAIULT 0
);

numb - номер телефона,
owner - владелец номера,
begin_action .. end_action - период, в котором данный номер принадлежал данному владельцу.
если begin_action установлен, а end_action - NULL, номер принадлежит владельцу в настоящее время.
Собственно проблема:
как с помощью триггера (или другим способом) сделать так, чтобы при добавлении новой информации о номере, либо изменении информации о номере:
1. если такой номер есть и он принадлежит кому-то в настоящее время (end_action=NULL) - изменить end_action на (сегодня - 1) день и вставить новую запись с end_action=NULL;
2. Если информации о номере нет, то вставить его (даже если происходит UPDATE)
 
Сверху