powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Простейший триггер
3 сообщений из 3, страница 1 из 1
Простейший триггер
    #32493133
Youra Polishuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взгляните на этот триггер, где у меня ошибка.
Как я его вставляю в базу не может быть добавлена запись в таблицу
authreg. Мне нужно, чтобы после добавления записи в таблицу authreg
в таблицу public."roster-items" добавились новые записи.
Может можно как-то сделать триггерную функ. Чтобы после добавления в таблицу authreg новой записи все старые попадали в функцию, а оттуда я бы их вставлял в табл. "roster-items".

CREATE OR REPLACE FUNCTION trig_f_adduser() RETURNS OPAQUE AS'
DECLARE
varchar(256) user_p;
varchar(256) realm_p;
BEGIN
SELECT username,realm INTO user_p,realm_p FROM authreg WHERE username<>NEW.username;
insert into public."roster-items"
values(NEW.username||''@''||NEW.realm,nextval(object-sequence),user_p||''@''||realm_p,user_p,true,true,0);
RETURN NEW;
END;
'language 'plpgsql';

CREATE TRIGGER adduser AFTER INSERT ON authreg FOR EACH ROW EXECUTE
PROCEDURE trig_f_adduser();
Чем будет отличаться если будет FOR EACH STATEMENT?
...
Рейтинг: 0 / 0
Простейший триггер
    #32493345
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээ... Работать не будет? ;)
...
Рейтинг: 0 / 0
Простейший триггер
    #32512317
centur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, работать не будет т.к. не будет NEW в for each statement


объясни подробней что нужно добавлять в roster-items - все записи кроме текущей из authreg ?
тогда имхо
insert into roster items (select * from authreg where oid!=NEW.oid) (или тут user!=NEW.user, а если повесить триггер на before то вроде как от where можно отказаться - в момент before зпись в таблице еще не вставлена, так что все что есть в ней - старые записи)

только тогда у тебя roster-items будет расти быстро - на каждую новую строку в authreg у тебя в roster будет класться копия таблицы authreg
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Простейший триггер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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