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

Postagens mais visitadas deste blog

Olá, o que é o Yggbrazil?