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

Requêtes MySQL Discussion :

Créer une clé secondaire


Sujet :

Requêtes MySQL

  1. #1
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut Créer une clé secondaire
    Bonjour à tous ,
    j'essaie de créer sans succès une clé secondaire dans une table de ma base mysql sauf que ma requêtte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE individu
    ADD CONSTRAINT fk_client_type FOREIGN KEY (TYPE) REFERENCES type_client(type);
    me renvoi l'erreur
    Error Code: 1215. Impossible d'ajouter des contraintes d'index externe
    Merci de me donner un coup de main .
    www.etech-keys.com
    https://sms.etech-keys.com

    le boiteux qui suit le chemin devance le coureur qui s'en écarte .

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    type est bien la clé primaire ou une clé unique de la table type_client ?
    La fait d'utiliser un mot réservé du langage SQL comme nom de colonne ne poserait-il pas un problème ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 741
    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 741
    Points : 52 454
    Points
    52 454
    Billets dans le blog
    5
    Par défaut
    TYPE est un mot réservé du SQL, au même titre que SELECT, UPDATE, ORDER, WHERE... Vous ne devriez pas utiliser ce mot pour désigner quoi que ce soit (colonne, table, contrainte...) dans votre base de données...

    Lisez l'article que j'ai écrit à ce sujet :
    https://sqlpro.developpez.com/cours/motsreserves/

    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/ * * * * *

  4. #4
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut
    Bonjour à tous ,
    Merci pour vos interventions utiles ,
    pour résoudre mon problème voici ce que j'ai fait
    • j'ai renommé le champ type en type_client dans les deux tables et la tables type_client en clients
    • ensuite je me suis rassuré d avoir le même type Datatype (TINYINT(1) UNSIGNED NULL DEFAULT 0 COMMENT '' ) du champ type_client dans les deux tables (très important )
    • et pour finir j'ai relancer ma requête et elle a fonctionner à 100%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE individu
    ADD CONSTRAINT fk_client_type FOREIGN KEY (type_client) REFERENCES clients(type_client);
    Merci à vous !
    www.etech-keys.com
    https://sms.etech-keys.com

    le boiteux qui suit le chemin devance le coureur qui s'en écarte .

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 959
    Points
    18 959
    Par défaut
    Salut à tous.

    Il n'est pas nécessaire de changer le nom de vos colonnes, même si ce sont des mots réservés.
    Il suffit d'encadrer le nom de vos colonnes par l'apostrophe inversée `
    Pour obtenir cet apostrophe inversé, vous devez faire alt + 7 + espace, ce qui donne le caractère `

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

Discussions similaires

  1. Créer une clé secondaire avec deux colonnes en même temps
    Par wallace27 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/01/2016, 20h30
  2. Créer une zone DNS secondaire
    Par surion dans le forum VBScript
    Réponses: 0
    Dernier message: 30/06/2009, 11h07
  3. Créer une fenêtre secondaire ?
    Par Invité dans le forum SDL
    Réponses: 2
    Dernier message: 03/11/2006, 20h54
  4. [Win'Design] Créer une clé secondaire 0,n 0,n
    Par Oberown dans le forum Autres
    Réponses: 7
    Dernier message: 21/01/2005, 16h12
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 17h20

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