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.
Más entradas de este motor
- ORA-01438value larger than specified precision allowed for this column (valor mayor que la precisión permitida para la columna)
- ORA-01400cannot insert NULL into (column) (no se puede insertar NULL en la columna)
- ORA-02291integrity constraint violated - parent key not found (violación de integridad: clave padre no encontrada)
- ORA-00979not a GROUP BY expression (no es una expresión GROUP BY)
- ORA-00918column ambiguously defined (columna definida de forma ambigua)
- ORA-06550línea/columna PLS-... error de compilación PL/SQL
- ORA-04068existing state of packages has been discarded (se descartó el estado existente de los paquetes)