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 :

ajout d'une clé etrangere innodb


Sujet :

Requêtes MySQL

Vue hybride

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par défaut ajout d'une clé etrangere innodb
    salut tout le monde,
    je souhaiterais ajouter une clé etrangere à une table existante.
    Mes 2 tables sont innodb. J'ai regardé les différents exemples que g pu trouver sur le site mais ça ne marche pas

    voila mes scripts:
    CREATE TABLE chapitre (
    cha_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
    cha_libelle varchar(30) NOT NULL default '',
    PRIMARY KEY (cha_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

    CREATE TABLE matiere (
    mat_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
    mat_libelle varchar(30) NOT NULL default '',
    PRIMARY KEY (mat_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

    et qd je decide d'ajouter le champ mat_id comme clé etrangere à la table 'chapitre' g une erreur de clé inconnu:
    je fais la requete suivante qui plante:
    ALTER TABLE `chapitre` ADD CONSTRAINT `FK_FIELD_MATIERE` FOREIGN KEY `FK_FIELD_MATIERE` (mat_id)
    REFERENCES `matiere` (mat_id)
    ON DELETE CASCADE
    ON UPDATE CASCADE

    le message d'erreur est le suivant:
    #1072 - La clé 'mat_id' n'existe pas dans la table

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    il te manque une colonne mat_id dans la table chapitre non ?

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par défaut
    oui g tenté de rajouter le champ mat_id dans la table 'chapitre' avant:
    ALTER TABLE chapitre ADD cha_id tinyint unsigned not null auto_increment;
    mais g l'erreur comme quoi le champ existe deja (dans la table matiere)
    #1060 - Nom du champ 'cha_id' d骠 utilis銼/code>

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Citation Envoyé par slyfer
    oui g tenté de rajouter le champ mat_id dans la table 'chapitre'
    Citation Envoyé par slyfer
    ALTER TABLE chapitre ADD cha_id tinyint unsigned not null auto_increment;
    Y a pas comme un problème dans ton ALTER ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/05/2011, 12h15
  2. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28
  3. [JSP] Ajout d'une tache dans le planificateur Windows
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 12/09/2003, 15h10
  4. Ajout d'une colonne dans une table ...
    Par Djedjeridoo dans le forum SQL
    Réponses: 2
    Dernier message: 22/07/2003, 16h12
  5. [DOM] Ajout d'une instrution de processing
    Par corwin_d_ambre dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 06/05/2003, 11h51

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