23514: check_violation
PostgreSQLO que significa?
Uma constraint CHECK foi violada. A linha inserida ou atualizada não satisfaz uma condição lógica definida na tabela (por exemplo, price > 0).
Por que acontece?
Dados que violam uma regra de negócio (preço negativo, código de status inválido, violação de intervalo de datas); ausência de validação no lado da aplicação; uma constraint rígida demais para os dados; registros que quebram a regra durante uma carga em massa.
Como resolver
Use o nome da constraint na mensagem de erro para descobrir qual condição foi violada; veja a definição: \d table_name. Consulte as linhas que violam invertendo a condição. Corrija os dados ou, se a regra realmente mudou, atualize a constraint: ALTER TABLE my_table DROP CONSTRAINT name; ALTER TABLE my_table ADD CONSTRAINT name CHECK (new_condition);