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