DBAtlas · データベース運用アトラス

44000: with_check_option_violation

PostgreSQL

意味

WITH CHECK OPTION で定義されたビューを通じた INSERT/UPDATE が、結果の行がビューの WHERE 条件を満たさなくなるため拒否された。ビューは自身のフィルタから外れる行の書き込みを防ぐ。

原因

更新可能なビューが WITH CHECK OPTION で定義されており、書き込みによって行がビューの定義条件から外れる (例: ビューが status='active' でフィルタしているのに行を 'inactive' に設定する)。行レベルセキュリティ (RLS) のポリシーでも同様のチェックが発生することがある。

対処方法

書き込む値がビューの WHERE 条件を満たすようにするか、(権限が許せば) ビューではなくベーステーブルに対して直接操作を行う。業務ルールで行がフィルタから外れることを許容する場合は、WITH CHECK OPTION なしでビューを再定義する。RLS の場合は、ポリシーの WITH CHECK 式を見直す。

DBAtlas で開く →

同じデータベースの他の項目