Erro "pg: stack depth limit exceeded" | O que aprendi hoje
Olá pessoal, tudo handbelezia com vocês?
Hoje tive esse erro no desenvolvimento de uma aplicação: "pg: stack depth limit exceeded"
Esse erro acontece quando: "A sua TRIGGER é executada a cada UPDATE e ela mesma também executa um UPDATE, gerando um loop infinito. Daí o HINT te avisando que está estourando o limite de memória reservado para recursividade de pilha" (https://pt.stackoverflow.com/a/287739/20013)
Ou seja, isso acontece quando uma trigger em um banco de dados é executada, fazendo ela executar a trigger novamente, virando assim um loop infinito. Então como podemos resolver isso?
Colocando o mais os seguintes argumentos:
FOR EACH ROW WHEN (pg_trigger_depth() = 0) -- Quando for Postgres
Que isso fará ele executar a trigger somente se não estiver outra em execução.
Comentários
Postar um comentário