powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите триггер написать PG.7.4.2
2 сообщений из 2, страница 1 из 1
Помогите триггер написать PG.7.4.2
    #32491927
Youra Polishuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы:
В этой таблице находятся все зарегистрированные пользователи.
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';
...
Рейтинг: 0 / 0
Помогите триггер написать PG.7.4.2
    #32492298
Заглянул
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После добавления новой записи в authreg в таблицу roster-items будет вставлено 2*(N -1) строк, где N - число записей в authreg, учитывая новую.
Может быть, имеет смысл как-то изменить логику?
По функциям етсь хороший раздел в руководстве.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите триггер написать PG.7.4.2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]