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

Firebird Discussion :

Modifier un clé étrangére : violation of FOREIGN KEY constraint


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut Modifier un clé étrangére : violation of FOREIGN KEY constraint
    Bonjour tout le monde,

    J'ai deux table Table1 et Table2
    CONSTRAINT FK_TABLE12 :
    Foreign key (CODE) References TABLE2 (CODE)
    Lorsque j'essaie de modifier un code par le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> update table1 set code='ZZ' where code='AA';
    J'obtient l'erreur suivante :

    Statement failed, SQLCODE = -530
    violation of FOREIGN KEY constraint "FK_TABLE12" on table "TABLE1"
    -Foreign key reference target does not exist

    J'ai pensser à détruire la contrainte fk_table12 avant la modification et à la recrer apres execution.
    Mais sa marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> alter table table 1 drop constraint  fk_table12;
    SQL> update table1 set code='ZZ' where code='AA';
    Statement failed, SQLCODE = -530
    violation of FOREIGN KEY constraint "FK_TABLE12" on table "TABLE1"
    -Foreign key reference target does not exist

  2. #2
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Bonjour,

    Le message dit que la référence de clé étrangère n'existe pas.

    En d'autre terme la colonne Table2.Code ne contient pas de "ZZ".

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Oui la colonne Code de la table Table2 ne contient pas de "ZZ".

    Malgré, il y a erreur !!

  4. #4
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 944
    Par défaut
    Il est peut-être nécessaire de faire un COMMIT après le drop de la contrainte ?

  5. #5
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Citation Envoyé par Socrat Voir le message
    Oui la colonne Code de la table Table2 ne contient pas de "ZZ".

    Malgré, il y a erreur !!
    Je pense que vous n'avez pas bien saisie ce que vous avez fait.
    Car il y a un message d'erreur justement parce qu'il n'y a pas de "ZZ" dans la table 2.

    Vous créée une contrainte d'intégrité de type clé étrangère sur la table 1 pour indiquer que la colonne Code(de table1) doit avoir une référence dans la table 2.

    C'est donc tout à fait normal que vous ayez un message d'erreur si vous essayez d'insérer (ou modifiez) dans table1 un Code qui n'existe pas dans table2.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/08/2007, 12h38
  2. probleme Violation of unique key constraint et SSIS
    Par housni dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 07/08/2007, 16h28
  3. Message d'erreur 'violation of FOREIGN KEY constraint' de Interbase
    Par abdelghani_k dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/06/2007, 09h11
  4. [C#/MS ACCESS] foreign key constraint
    Par GeantVert13 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 01/09/2006, 22h38
  5. [clés étrangères] a foreign key constraint fails
    Par guidav dans le forum Débuter
    Réponses: 15
    Dernier message: 09/08/2006, 23h50

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