*Ótimo Douglas.*

    Precisando de ajuda, sinalize. [?]

*Atenciosamente.*

*Alan Formagi*
*(47) 92034013 - Vivo*

Em 1 de julho de 2015 13:15, Douglas Fabiano Specht <
[email protected]> escreveu:

>
>
> Em 1 de julho de 2015 12:59, Alan Formagi <[email protected]> escreveu:
>
>> *Boa tarde Douglas!*
>>
>>     Pelo o que eu entendo essa estrutura vai ficar em loop.
>>     Toda vez que você inserir um registro a trigger tentará inserir
>> outros, que por consequência irão disparar a mesma trigger, criando uma
>> "pilha". Sendo que é justamente isso que o postgres está reclamando quando
>> te pede para incrementar a configuração max_stack_depth (
>> http://www.postgresql.org/docs/8.3/static/runtime-config-resource.html).
>>     Uma solução é você adicionar um campo na tabela que identifique
>> quando o registro é inserido pela trigger e quando é inserido pelo
>> programa, e a partir disso fazer um tratamento dentro da função da trigger.
>>     Assim que eu tiver uns minutos eu vou tentar simular o caso na minha
>> máquina, e se eu conseguir eu te mando um exemplo da solução.
>>
>> *Atenciosamente.*
>>
>> *Alan Formagi*
>> *(47) 92034013 - Vivo*
>>
>> 2015-07-01 11:43 GMT-03:00 Douglas Fabiano Specht <
>> [email protected]>:
>>
>>>
>>> Pessoal
>>> preciso gerar uma trigger que quando tiver um insert ele duplique mais x
>>> vezes conforme o max de uma outra tabela, acho que esta em loop infinito,
>>> pois me da um erro: ERROR:  stack depth limit exceeded
>>> HINT:  Increase the configuration parameter "max_stack_depth" (currently
>>> 2048kB), after ensuring the platform's stack depth limit is adequate.
>>>
>>> estou apanhando..alguem poderia me ajudar?
>>> postgres 9.4
>>>
>>>
>>> CREATE OR REPLACE FUNCTION dah.wdetcad() RETURNS TRIGGER AS $body$
>>> declare
>>> i integer;
>>>
>>> BEGIN
>>> for i in 1..(select max(codempresa) from configura  WHERE codhotel >1)
>>>     loop
>>> INSERT INTO detcad
>>> select i, new.codgrupo, new.codfuncresp ;
>>>  end loop;
>>>
>>> RETURN NEW();
>>> END;
>>> $body$
>>> LANGUAGE plpgsql;
>>>
>>> --
>>>
>>> Douglas Fabiano Specht
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
> boa tarde
> obrigado a todos pela resposta,
> realmente o Alan matou a charada, como a trigger olhava no insert,e a
> propria trigger dava o insert ficava em loop,criei um campo de controle e
> funcionou.
>
>
> --
>
> Douglas Fabiano Specht
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a