Oracle hataları

ORA-02291: integrity constraint violated - parent key not found

Bütünlük kısıtı ihlali — üst kayıt bulunamadı

ORA-02291: integrity constraint (SCHEMA.CONSTRAINT) violated - parent key not found

Foreign key değerinin üst tabloda karşılığı olmayan bir alt satır eklediniz ya da güncellediniz. Önce üst kaydı ekleyin ya da değeri düzeltin.

ORA-02291 ne demek?

Foreign key, her alt satırın var olan bir üst satırı göstermesini garanti eder. ORA-02291, verdiğiniz değerin üst kaydı olmadığını söyler. Mesaj kısıtın adını verir; kolonları ve üst tablosu veri sözlüğündedir. Alt satır silmek bu hatayı hiç vermez; üst taraf için bkz. ORA-02292.

ORA-02291 neden olur?

ORA-02291 nasıl çözülür?

  1. Kısıtın üst tablosunu ve kolonlarını ALL_CONSTRAINTS ile bulun.
  2. Değerin üst tabloda olup olmadığına bakın.
  3. Üstleri altlardan önce yükleyin ya da DEFERRABLE bir kısıtla ikisini tek işlemde ekleyin.
  4. Hatayı geçmek için kısıtı kapatmayın: öksüz satırlar sonra sorun çıkarır.

ORA-02291 örneği

Üst tablo hangisi?

SELECT c.table_name AS alt, p.table_name AS ust, p.constraint_name
  FROM all_constraints c
  JOIN all_constraints p
    ON p.owner = c.r_owner AND p.constraint_name = c.r_constraint_name
 WHERE c.constraint_name = 'FK_ORDERS_CUSTOMER';

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-02292ORA-00001ORA-01400 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-02291. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.