23514: check_violation
PostgreSQLЧто это значит?
Нарушено ограничение CHECK. Вставленная или обновлённая строка не удовлетворяет логическому условию, определённому для таблицы (например, price > 0).
Почему возникает?
Данные, нарушающие бизнес-правило (отрицательная цена, недопустимый код статуса, нарушение диапазона дат); отсутствие проверки на стороне приложения; слишком строгое для данных ограничение; записи, нарушающие правило при массовой загрузке.
Как исправить
По имени ограничения в сообщении об ошибке определите, какое условие нарушено; просмотрите определение: \d table_name. Найдите нарушающие строки запросом с инвертированным условием. Исправьте данные или, если правило действительно изменилось, обновите ограничение: ALTER TABLE my_table DROP CONSTRAINT name; ALTER TABLE my_table ADD CONSTRAINT name CHECK (new_condition);