DBAtlas · Atlas für Datenbankbetrieb

ORA-02292: integrity constraint violated - child record found (Integritäts-Constraint verletzt: Kinddatensatz gefunden)

Oracle

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank