23503: foreign_key_violation
PostgreSQLNe demek?
Bir foreign key constraint'i ihlal edildi. Eklenen/güncellenen satırın işaret ettiği üst kayıt yok ya da silinmek istenen üst kayda bağlı alt kayıtlar var.
Neden olur?
Var olmayan bir üst anahtara referans veren INSERT/UPDATE, hâlâ referans alınan bir üst satırı silme/güncelleme denemesi veya verilerin yanlış sırayla yüklenmesi (önce çocuk, sonra ebeveyn).
Nasıl çözülür?
Önce ilgili üst kaydı ekleyin, sonra alt kaydı ekleyin. Silme için kaskad davranışı gerekiyorsa constraint'i ON DELETE CASCADE veya ON DELETE SET NULL ile tanımlayın. Toplu yüklemede veriyi ebeveyn-çocuk sırasına göre yükleyin. Referans veren satırları bulun: SELECT * FROM cocuk WHERE fk_sutun = deger.