Помогите триггер написать PG.7.4.2

Youra Polishuk
Дата: 22.04.2004 14:55:10
Есть две таблицы:
В этой таблице находятся все зарегистрированные пользователи.
CREATE TABLE public.authreg
( username varchar(256),
realm varchar(256),
password varchar(256),
token varchar(10),
sequence int4,
hash varchar(40)) WITH OIDS;
В этой таблице хранятся на каждого пользователя, те пользователи которые добалены в его контакт-лист.
CREATE TABLE public."roster-items"
("collection-owner" text,
"object-sequence" int8,
jid text,
name text,
to bool,
from bool,
ask int4) WITH OIDS;
Для того, чтобы добавить в контак-лист зарегистрированного пользователя "youra" зарегистрированного пользователя "denis" нужно выполнить
insert into public."roster-items"
values('youra@192.168.0.1',nextval('object-sequence'),'denis@192.168.0.1','denis','true','true','0');
Мне необходимо сделать следующее написать триггер который при добавлении нового пользователя (Пользователь добавляется в табл. public.authreg), добавлять в его котакт-лист всех пользователей зарегистрированных в таблице public."roster-items", и добавить себя в контакт-листы всех заведенных пользователей.
Я вот пытался написать триггерную функцию, должно быть как мне кажется:
CREATE OR REPLACE FUNCTION trig_f_adduser () RETURNS OPAQUE AS '
BEGIN
Для каждой записи
select username||'@'||realm from authreg where username<>new.username;

insert into public."roster-items"
values(new.username||''@''||new.realm,nextval(''object-sequence''), username||''@''||realm,username,''true'',''true'','0');
endif
END;
'language 'plpgsql';
Заглянул
Дата: 22.04.2004 16:27:24
После добавления новой записи в authreg в таблицу roster-items будет вставлено 2*(N -1) строк, где N - число записей в authreg, учитывая новую.
Может быть, имеет смысл как-то изменить логику?
По функциям етсь хороший раздел в руководстве.