|
Простейший триггер
|
|||
---|---|---|---|
#18+
Взгляните на этот триггер, где у меня ошибка. Как я его вставляю в базу не может быть добавлена запись в таблицу 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? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2004, 09:01 |
|
Простейший триггер
|
|||
---|---|---|---|
#18+
Эээ... Работать не будет? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2004, 10:34 |
|
Простейший триггер
|
|||
---|---|---|---|
#18+
да, работать не будет т.к. не будет 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2004, 22:05 |
|
|
start [/forum/topic.php?fid=53&msg=32493133&tid=2007873]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 480ms |
0 / 0 |