23514: check_violation
PostgreSQLNe demek?
Bir CHECK constraint'i ihlal edildi. Eklenen ya da güncellenen satır, tabloda tanımlı bir mantıksal koşulu (örn. fiyat > 0) sağlamıyor.
Neden olur?
İş kuralını ihlal eden veri (negatif fiyat, geçersiz durum kodu, tarih aralığı ihlali); uygulama tarafında doğrulama yapılmaması; constraint'in veriye göre çok katı olması; toplu yüklemede kurala uymayan kayıtlar.
Nasıl çözülür?
Hata mesajındaki constraint adına bakarak hangi koşulun ihlal edildiğini bulun; tanımı görün: \d tablo_adi. İhlal eden satırları koşulu tersine çevirerek sorgulayın. Veriyi düzeltin ya da kural gerçekten değiştiyse constraint'i güncelleyin: ALTER TABLE tablo DROP CONSTRAINT ad; ALTER TABLE tablo ADD CONSTRAINT ad CHECK (yeni_kosul);