23503: foreign_key_violation
PostgreSQL含义
违反了 FOREIGN KEY 约束。插入/更新的行所引用的父行不存在,或要删除的父行仍有依赖的子行。
原因
INSERT/UPDATE 引用了不存在的父键、尝试删除/更新仍被引用的父行,或数据加载顺序错误(先子后父)。
解决方法
先插入父行,再插入子行。如果删除时需要级联行为,使用 ON DELETE CASCADE 或 ON DELETE SET NULL 定义约束。批量加载时按父-子顺序加载数据。查找引用行:SELECT * FROM child WHERE fk_column = value。