44000: with_check_option_violation
PostgreSQLO que significa?
Um INSERT/UPDATE por meio de uma view definida WITH CHECK OPTION foi rejeitado porque a linha resultante não satisfaz mais a condição WHERE da view. A view impede a gravação de linhas que ficariam fora do seu próprio filtro.
Por que acontece?
Uma view atualizável está definida WITH CHECK OPTION e a escrita move a linha para fora da condição que define a view (por exemplo, definir uma linha como 'inactive' enquanto a view filtra status='active'). Uma verificação semelhante pode ser disparada em políticas de row-level security (RLS).
Como resolver
Garanta que os valores gravados satisfaçam a condição WHERE da view, ou execute a operação diretamente na tabela base em vez da view (se os privilégios permitirem). Se a regra de negócio permitir que a linha saia do filtro, redefina a view sem WITH CHECK OPTION. Para RLS, revise a expressão WITH CHECK da política.