ORA-02292: integrity constraint violated - child record found (Integritäts-Constraint verletzt: Kinddatensatz gefunden)
OracleWas bedeutet das?
Eine Elternzeile wurde gelöscht oder ihr Schlüssel geändert, aber der Foreign-Key-Constraint ließ es nicht zu, weil abhängige Kinddatensätze existieren.
Ursache
Versuch, eine Elternzeile mit Datensätzen in der Kindtabelle per DELETE zu löschen; der FK ist ohne ON DELETE CASCADE definiert; abhängige Datensätze wurden nicht zuerst bereinigt.
Lösung
Lösche zuerst die abhängigen Kinddatensätze oder hänge sie an einen anderen Elterndatensatz, dann lösche die Elternzeile. Erlaubt es die Geschäftsregel, lege den Foreign Key mit ON DELETE CASCADE neu an: ALTER TABLE child DROP CONSTRAINT fk_name; ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (my_column) REFERENCES parent(key_col) ON DELETE CASCADE; Um abhängige Zeilen zu finden, frage die Kindtabelle über den Elternschlüssel ab.
Weitere Einträge zu dieser Datenbank
- ORA-01438value larger than specified precision allowed for this column (Wert größer als die für die Spalte erlaubte Precision)
- ORA-01400cannot insert NULL into (column) (NULL kann nicht in die Spalte eingefügt werden)
- ORA-02291integrity constraint violated - parent key not found (Integritäts-Constraint verletzt: Elternschlüssel nicht gefunden)
- ORA-00979not a GROUP BY expression (kein GROUP-BY-Ausdruck)
- ORA-00918column ambiguously defined (Spalte mehrdeutig definiert)
- ORA-06550line/column PLS-... PL/SQL compilation error (PL/SQL-Kompilierfehler)
- ORA-04068existing state of packages has been discarded (bestehender Package-Zustand wurde verworfen)