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 :

[débutant] Aide pour mettre une FOREIGN KEY sur une table


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Bonjour,

    Voilà les deux tables que j'ai réalisé :

    marques (nom_marques)
    modeles (Id_modele, Lib_modele, #marques)

    J'ai donc fait ma base de données avec Mysql, et j'ai oublié au début de la création de ma base de poser ma "foreign key" sur le champ marques de la table modeles.

    Pour l'instant j'ai trouvé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ALTER TABLE modeles ADD FOREIGN_KEY REFERENCES modeles(marques);
    Mes questions sont : Que dois-je taper au clavier pour rajouter cette foreign key selon vous ? Ou est la faute dans ma formule ? (Pour info j'utilise Mysql 4.1.7 avec l'invite de commande dos, et mes tables sont en InnoDB)

    Je pense avoir fait une faute de SQL...

    Autre question au passage, dans ma base de données, j'ai - de 10 tables avec 3 champs maximum et - de 1000 entrées au total... est-ce qu'il est utile de mettre des index dans ce cas là ? Et est-ce que InnoDB pose des index automatiquement ou non lors de la création de tables ?

    Merci d'avance de vos réponses et conseils

  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 739
    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 739
    Points : 52 451
    Points
    52 451
    Billets dans le blog
    5
    Par défaut
    La syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE modeles ADD CONSTRAINT pk_marque FOREIGN_KEY (nom_marques) REFERENCES modeles (nom_marques)
    Quelques remarques :
    1) tout caractère autre que les lettres (non diacritiques) et les chiffres et le blanc souligné sont à proscrire dans les noms des objets (table, colonne. En particulier #marque est à éviter.
    2) il est préférable qu'une colonne de clef étrangère porte le même nom que la colonne de clef primaire qu'elle référence puisque c'est la même information au sens sématique du terme.
    3) la définition des contraintes d'intégrité n'est supoporté par mySQL qu'avec des tables INNODB.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    SQLpro, je te remercie pour cette aide très précieuse, ainsi que pour tes remarque instructives !

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

Discussions similaires

  1. Emuler une foreign key sur des tables pseudo-héritées
    Par gorgonite dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 11/01/2013, 17h25
  2. enregistrer en une fois classe avec une foreign key
    Par xander412 dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/08/2010, 12h18
  3. [PostgreSQL 7.4] Permission denied sur une foreign key
    Par Lorenzeb dans le forum Administration
    Réponses: 5
    Dernier message: 23/12/2009, 15h35
  4. Foreign KEY sur une SEQUENCE
    Par xoum89 dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2009, 15h17
  5. Foreign Key sur une partie de Primary Key
    Par Loceka dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/10/2006, 10h09

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