DBAtlas · Atlas de operaciones de bases de datos

ORA-02292: integrity constraint violated - child record found (violación de integridad: se encontró un registro hijo)

Oracle

¿Qué significa?

Se eliminó una fila padre o se cambió su clave, pero la restricción de clave foránea no lo permitió porque existen registros hijos dependientes.

¿Por qué ocurre?

Intentar hacer DELETE de una fila padre que tiene registros en la tabla hija; la FK está definida sin ON DELETE CASCADE; no se limpiaron antes los registros dependientes.

Cómo solucionarlo

Primero elimine los registros hijos dependientes o muévalos a otro registro padre y luego elimine la fila padre. Si la regla de negocio lo permite, vuelva a crear la clave foránea con 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; Para encontrar las filas dependientes, consulte la tabla hija por la clave padre.

Abrir en DBAtlas →

Más entradas de este motor