IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Administration Oracle Discussion :

Problème pour réactiver une contrainte en novalidate


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut Problème pour réactiver une contrainte en novalidate
    Bonjour,

    Sur une base oracle 8 j'ai désactivé une contrainte d'unicité, car j'avais besoin de faire un update sur toute une table. J'ai du la désactiver car il y avait des doublons dans la table (ce qui n'est pas un problème en soi).
    Je voudrais maintenant la réactiver mais en mode novalidate pour ne pas prendre en compte les doublons déjàs existants.
    Or lorsque je lance ma requête d'activation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table ma_table enable novalidate constraint sys_c00828;
    j'ai le message d'erreur "cannot validate - primary key violated"

    Je ne comprend pas pourquoi cela ne fonctionne pas en novalidate ?

    Merci d'avance pour votre aide.
    FI

  2. #2
    Membre éclairé Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Points : 807
    Points
    807
    Par défaut
    Bonjour,

    essai avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE ma_table modify constraint sys_c00828 enable novalidate ;
    ==========================================
    La justice sans la force est impuissante, la force sans la justice est tyrannique...

  3. #3
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    merci pour ta réponse, j'avais déjà essayé comme cela et j'ai toujours le même message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ALTER TABLE g_profile MODIFY constraint sys_c00828 enable novalidate 
    Error report:
    SQL Error: ORA-02437: cannot validate (PROTECSYS.SYS_C00828) - primary key violated
    02437. 00000 -  "cannot validate (%s.%s) - primary key violated"
    *Cause:    attempted to validate a primary key with duplicate values or null
               values.
    *Action:   remove the duplicates and null values before enabling a primary
               key.

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  2. Problème pour positionner une liste déroulante
    Par ouckileou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/09/2004, 01h05
  3. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  4. [MSSQL] Problème pour sélectionner une seule occurence
    Par Tinfolley dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/07/2004, 09h02
  5. Réponses: 3
    Dernier message: 29/08/2003, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo