On Wed, Jul 1, 2015 at 11:43 AM, Douglas Fabiano Specht <
[email protected]> wrote:
>
> 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?
>
Sim, mas precisamos de mais detalhes. Principalmente a definição da
trigger, não só da função. Mais detalhes sobre a intenção também ajudaria
para recomendações.
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;
>
Seu loop é completamente denecessário:
INSERT INTO detcad
SELECT i, NEW.codgrupo, NEW.codfuncresp
FROM generate_series(1, (SELECT max(codempresa) FROM configura WHERE
codhotel > 1)) i;
>
> RETURN NEW();
>
RETURN NEW;
Atenciosamente,
--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral