Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Foreign Key non validée


Sujet :

SQL Oracle

  1. #1
    Rédacteur/Modérateur

    Foreign Key non validée
    Bonjour,

    Il m'arrive un problème bête : j'ai désactivé une contrainte de FOREIGN KEY (une toute bête, NOT DEFERRABLE et avec une DELETE RULE = NO ACTION) sans m'apercevoir qu'il y avait plein de lignes qui ne vérifient pas la contrainte (je suppose que ça correspond au statut NOT VALIDATED de ladite contrainte).

    J'aurais donc une question existentielle et une question pratique :
    • comment c'est possible d'avoir des lignes invalides alors que la contrainte était activée ?
    • comment je fais maintenant pour la réactiver sans corriger les lignes ?


    Merci d'avance pour toute piste !
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  2. #2
    Membre expérimenté
    "comment c'est possible d'avoir des lignes invalides alors que la contrainte était activée"
    Es-tu sur que la contrainte était bien activée lorsque les donnés ont été insérées? Il est possible sous Oracle d'insérer des données puis de créer une contrainte d'intégrité valable UNIQUEMENT pour les nouvelles données insérées.

    https://docs.oracle.com/database/121/SQLRF/clauses002.htm#SQLRF52180 :
    "ENABLE VALIDATE specifies that all old and new data also complies with the constraint. An enabled validated constraint guarantees that all data is and will continue to be valid.

    ENABLE NOVALIDATE ensures that all new DML operations on the constrained data comply with the constraint. This clause does not ensure that existing data in the table complies with the constraint."



    "comment je fais maintenant pour la réactiver sans corriger les lignes ?"
    Essaye un
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ALTER TABLE ADD CONSTRAINT ... ENABLE NOVALIDATE;
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Rédacteur/Modérateur

    C'est parfait, merci beaucoup !
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Membre expérimenté
    Content d'avoir pu aider
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com