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);