23514: check_violation
PostgreSQL¿Qué significa?
Se violó una restricción CHECK. La fila insertada o actualizada no cumple una condición lógica definida en la tabla (p. ej., price > 0).
¿Por qué ocurre?
Datos que incumplen una regla de negocio (precio negativo, código de estado no válido, violación de rango de fechas); sin validación en el lado de la aplicación; una restricción demasiado estricta para los datos; registros que incumplen la regla durante una carga masiva.
Cómo solucionarlo
Use el nombre de la restricción del mensaje de error para averiguar qué condición se violó; vea la definición: \d table_name. Consulte las filas infractoras invirtiendo la condición. Corrija los datos o, si la regla realmente ha cambiado, actualice la restricción: ALTER TABLE my_table DROP CONSTRAINT name; ALTER TABLE my_table ADD CONSTRAINT name CHECK (new_condition);