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

Langage SQL Discussion :

Definir une clé étrangère dans une table existante?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut Definir une clé étrangère dans une table existante?
    Bonjour a tous!!

    Voila j'ai un petit problème avec une instruction sql...
    J'ai récupéré une table existante (je n'ai pas le source create table...), cette table DEC_ENR contient entre autre un attribut CAS_NUM qui est défini comme un attribut quelconque alors qu'il devrait etre une clé étrangère référencant l'attribut CAS_NUM de la table CAS...donc voila je voudrais définir cet attribut comme clé étrangère de la table CAS...
    J'aii recherché sur le web et j'ai essayé cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ALTER TABLE DEC_ENR ADD CONSTRAINT CAS_NUM FOREIGN KEY REFERENCES CAS (CAS_NUM);
    mais cela ne fonctionne pas, j'obtiens l'erreur suivante :

    Failed to execute SQL : SQL ALTER TABLE DEC_ENR ADD CONSTRAINT CAS_NUM FOREIGN KEY REFERENCES CAS (CAS_NUM); failed : 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 'REFERENCES CAS (CAS_NUM)' at line 1

    Je n'ai aucune idée de comment m'y prendre (et si c'est possible!!)
    Donc si vous avez des idées, elles sont le bienvenues!!

    Merci d'avance pour vos réponses!!

    Guillaume.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 862
    Points : 53 013
    Points
    53 013
    Billets dans le blog
    6
    Par défaut
    Vous avez effectivement une erreur de syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE DEC_ENR ADD CONSTRAINT CAS_NUM FOREIGN KEY (CAS_NUM) REFERENCES CAS (CAS_NUM);
    EN effet derrière le mot clef FOREIGN KEY doit figurer la liste des colonnes de la table fille (celle que vous modifiez) dont les colonnes doivent correpondre à celles de la table mère.

    POur la syntaxe complète; lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/s...partie2#L7.2.4

    A +

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut
    ça marche!!
    Super!

    Merci beaucoup!


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

Discussions similaires

  1. Ajout d'une clé étrangère dans une table
    Par SteffieLili dans le forum QlikView
    Réponses: 11
    Dernier message: 25/03/2014, 15h54
  2. Réponses: 6
    Dernier message: 18/05/2012, 12h44
  3. Insertion d'une valeur null dans une clé étrangère
    Par labib23dz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/03/2012, 10h24
  4. comment ajouter une clé étrangère dans une table
    Par une_tite_question dans le forum Débuter
    Réponses: 6
    Dernier message: 09/05/2008, 07h14

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