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 MySQL Discussion :

Intégration de clé étrangère


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Par défaut Intégration de clé étrangère
    Bonjour,

    Alors j'ai lu quelques post (et aussi une bonne partie du cours sur sql, mais c'est très obscure pour moi) sur la création de clés étrangères.

    Dans mon cas j'aimerai pouvoir modifier une table existante, je tente d'utiliser ALTER TABLE et je reçois une erreur 1064 (erreur de syntaxe) mais je ne vois pas ou se situe l'erreur.

    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE 'ph_construct' 
    ADD FOREIGN KEY ('id_prg') 
    REFERENCES 'ph_programme' ('id_prg')
    Je veux ajouter la clé id_prg (ligne id dans ma table ph_programme) dans la table ph_construct.
    Mon but étant de pouvoir appeler certaines informations contenue dans des tables séparées en fonction d'un nom de programme particulier.

    Par exemple pour le programme XXX, je veux la date de démarrage des travaux, les coordonnées des différents intervenants etc...
    Donc j'ai besoin de clés étrangères.

    J'ai modifié l'ensemble de mes tables pour les passer en InnoDB (moteur en MyIsam par défaut), et lancé ma requête et donc voila le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ph_construct' ADD FOREIGN KEY ('id_prg') REFERENCES 'ph_programme' ('id_prg')' at line 1
    Veuillez être transigeant, je tâtonne...

    Merci par avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    tu ne dois pas utiliser les 'apostrophes' autour des noms de tables ou de colonnes. Ils s'écrivent sans rien ou éventuellement entre `accents graves`.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE ph_construct
    ADD FOREIGN KEY (id_prg) 
    REFERENCES ph_programme (id_prg)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Par défaut
    Faute de débutant, autant pour moi...

    Cependant, je reçois le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1072 - Key column 'prg' doesn't exist in table
    Cela veut-il dire qu'il faut que je créé un champ à la main!?
    Le "ADD" ne sert-il à rien? si je dois passer sur toutes mes tables en fonction des jonctions multiples que je dois créer ?

    Peut-être me manque-t-il un élément ?


    Merci de me répondre en tout cas.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    ADD COLUMN ajoute une colonne à la table.
    ADD FOREIGN KEY ajoute la contrainte d'intégrité référentielle (vérification de la clef étrangère), sur une colonne qui doit effectivement exister...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Par défaut
    Bonjour et merci pour la réponse,

    SI je comprends correctement, je peux faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ALTER TABLE ph_construct
    ADD id_prg INT(à ne pas oublier, sinon erreur de syntaxe)
    REFERENCES ph_programme (id_prg)
    Est-ce correcte?

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    sous réserve de test, oui.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [clé primaire et étrangère]
    Par viny dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/08/2003, 19h23
  2. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 15h38
  3. [Script]prob de clés étrangères
    Par Seb7 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 08/07/2003, 18h37
  4. [NETBEANS] Intégration de Jboss dans NetBeans
    Par Kleb dans le forum NetBeans
    Réponses: 1
    Dernier message: 09/06/2003, 19h45

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