ORA-02292: integrity constraint violated - child record found (contrainte d'intégrité violée : enregistrement enfant trouvé)
OracleQue signifie cette erreur ?
Une ligne parente a été supprimée ou sa clé modifiée, mais la contrainte de clé étrangère ne l'a pas permis, car des enregistrements enfants dépendants existent.
Cause
Tentative de DELETE d'une ligne parente ayant des enregistrements dans la table enfant ; FK définie sans ON DELETE CASCADE ; enregistrements dépendants non nettoyés au préalable.
Comment la corriger
Supprimez d'abord les enregistrements enfants dépendants ou rattachez-les à un autre enregistrement parent, puis supprimez la ligne parente. Si la règle métier le permet, recréez la clé étrangère avec 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; Pour trouver les lignes dépendantes, interrogez la table enfant par la clé parente.
Autres entrées pour ce moteur
- ORA-01438value larger than specified precision allowed for this column (valeur supérieure à la précision autorisée pour la colonne)
- ORA-01400cannot insert NULL into (column) (insertion de NULL impossible dans la colonne)
- ORA-02291integrity constraint violated - parent key not found (contrainte d'intégrité violée : clé parente introuvable)
- ORA-00979not a GROUP BY expression (n'est pas une expression GROUP BY)
- ORA-00918column ambiguously defined (colonne définie de façon ambiguë)
- ORA-06550line/column PLS-... PL/SQL compilation error (erreur de compilation PL/SQL)
- ORA-04068existing state of packages has been discarded (l'état existant des packages a été supprimé)