DBAtlas · Атлас эксплуатации баз данных

ORA-02292: Нарушено ограничение целостности — найдена дочерняя запись

Oracle

Что это значит?

Родительская строка удалена или её ключ изменён, но ограничение внешнего ключа этого не допустило, поскольку существуют зависимые дочерние записи.

Почему возникает?

Попытка выполнить DELETE родительской строки, у которой есть записи в дочерней таблице; FK определён без ON DELETE CASCADE; зависимые записи не были предварительно удалены.

Как исправить

Сначала удалите зависимые дочерние записи или перенесите их к другой родительской записи, затем удалите родительскую строку. Если бизнес-правило это допускает, пересоздайте внешний ключ с ON DELETE CASCADE: 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; Чтобы найти зависимые строки, выполните запрос к дочерней таблице по родительскому ключу.

Открыть в DBAtlas →

Ещё по этой СУБД