ORA-02292: integrity constraint violated - child record found
OracleNe demek?
Bir üst (parent) satır silinmeye ya da anahtarı değiştirilmeye çalışıldı, ancak ona bağlı alt (child) kayıtlar bulunduğu için foreign key constraint'i buna izin vermedi.
Neden olur?
Alt tabloda kayıtları olan bir üst satırı DELETE etmeye çalışmak; FK'nın ON DELETE CASCADE olmadan tanımlı olması; bağımlı kayıtların önce temizlenmemesi.
Nasıl çözülür?
Önce bağımlı alt kayıtları silin ya da başka bir üst kayda taşıyın, ardından üst satırı silin. İş kuralı uygunsa foreign key'i ON DELETE CASCADE olacak şekilde yeniden oluşturun: ALTER TABLE alt DROP CONSTRAINT fk_ad; ALTER TABLE alt ADD CONSTRAINT fk_ad FOREIGN KEY (sutun) REFERENCES ust(anahtar) ON DELETE CASCADE; Bağlı satırları bulmak için alt tabloyu üst anahtara göre sorgulayın.
Aynı motorda diğer kayıtlar
- ORA-01438value larger than specified precision allowed for this column
- ORA-01400cannot insert NULL into (column)
- ORA-02291integrity constraint violated - parent key not found
- ORA-00979not a GROUP BY expression
- ORA-00918column ambiguously defined
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded