|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
ситуация такова что в триггере срабатывающем AFTER INSERT on T1 ... выполняется другая вставка INSERT into T2 ... но это не работает, выдается ошибка типа - pq_recvbuf: recv() failed: Connection reset by peer. в чем проблема подскажите. З.Ы. AFTER DELETE on T1 ... все работает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2003, 15:08 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
А поподробнее? версия? тексты? _______ (я тут смотрю как работает рекурсия при помощи триггеров. Так вроде на моделях вполне получается: например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: plaintext 1. 2. 3. 4. 5.
на ADD и UPDATE - подобная бяка. РАботает. Пробегает по всей иерархии. Но тут у меня нет попыток вообще зациклить. С другой стороны если есть проблемы, хотелось бы их нащупать еще на стадии моделей. (т.е. до выбора конкретных способов реализации). А вдруг блокировки как-то могут повлиять? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2003, 18:03 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
а на T2 случайно нет тригера на insert into T1??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2003, 12:17 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
а есть ли вообще какие нибудь 1.триггеры на инсерт и апдейт (в т.ч. вторичнные ключи) 2.правила в T2. Если есть - попробуй разрулить :0). А показать текст(ы) - слабо? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2003, 14:38 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
наверное стоит уточнить. 1) есть перловый скрип, который вызывает первичный инзерт 2) самый простой вариант CREATE FUNCTION ins_log() RETURNS OPAQUE AS ' DECLARE tstamp VARCHAR := timenow(); tuser VARCHAR := session_user; BEGIN RAISE NOTICE ''DEVELOPER :: ins_log'',tstamp; RAISE NOTICE ''user login = '',tuser; insert into test (name) values (''test''); RETURN NEW; END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER ins_log AFTER INSERT ON log FOR EACH ROW EXECUTE PROCEDURE ins_log(); ну вот это и виснет пробовал из оболочки (psql ...) вызывать первый инзерт, ошибка появляется реже, но было. Оно конечно может быть косяк в Perl::DBI, но вдруг и Postgresql? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2003, 10:53 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
повторил ваш тригер (приблизительно). __ CREATE OR REPLACE FUNCTION public.ins_log() RETURNS trigger AS ' DECLARE tstamp VARCHAR := timenow(); tuser VARCHAR := session_user; BEGIN RAISE NOTICE \'DEVELOPER :: ins_log\',tstamp; RAISE NOTICE \'user login = \',tuser; insert into vbtest (id,name) values ((SELECT 1+max(id) FROM vbtest),\'test\'); RETURN NEW; END; ' LANGUAGE 'plpgsql' VOLATILE; __ Вставлял данные из оболочки PgAdmin. Проблем не возникло. :( Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2003, 15:03 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
все спасибо , разобрался. косяк был в linux, а не постгресе или перле. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2003, 18:01 |
|
триггер AFTER INSERT
|
|||
---|---|---|---|
#18+
Не за что (заодно полюбопытствовал) если я прально вас понял, там надоть че-нить типа: ins_log %'',tstamp; ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2003, 19:28 |
|
|
start [/forum/topic.php?fid=53&msg=32318627&tid=2008051]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 338ms |
total: | 504ms |
0 / 0 |