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 :

Erreur lors de l'ajout d'une deuxième clef étrangère


Sujet :

Administration MySQL

  1. #1
    Membre habitué Avatar de mensoif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Points : 129
    Points
    129
    Par défaut Erreur lors de l'ajout d'une deuxième clef étrangère
    Bien le bonjour, je poste car de toutes les explications trouvé, je n'ai trouvé que des exemple "mono" clef étrangère.

    Mon p'tit problème réside dans le fait que je dois transformer ma base, et la principal modification est que je dois rajouter une clef étrangère à une table en possédant déjà une.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE Mr_tcu (
    	pk_url Varchar(255) not null,
    	type Varchar(255) not null,
    	title Varchar(255) not null,	
    	content Text,
    	rank Smallint(5) Unsigned not null,
    	Primary Key (pk_url, type)
    ) TYPE=INNODB DEFAULT CHARSET=utf8;
    et la table qui me pose problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE Mr_occurrence (
    	url Varchar(255) not null,
    	mr Varchar(30) not null, 
    	type Varchar(255) not null,
    	occurrence Smallint(3) Unsigned not null default 0,
    	Primary key (mr, url, type),
            Index ( url),
    	Foreign Key (url) References Mr_tcu (pk_url) On Delete Cascade On Update Cascade  ,
    	Foreign Key  (type) References Mr_tcu (type) On Delete Cascade On Update Cascade
    ) TYPE=INNODB DEFAULT CHARSET=utf8;
    La première table passe à la compil, mais pour la deuxième j'ai la fameuse erreur 150. Le truc, c'est que je ne vois pas comment faire pour rajouter la deuxième clef étrangère. En noir le code au départ, en rouge le code que j'ai rajouté.

    Je cherche donc à introduire une clef étrangère type dans Mr_occurrence referencant la clef primaire type dans Mr_tcu

    Si quelqu'un pouvais me dire ce qu'il boulette, merci ! =)

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 901
    Points : 6 026
    Points
    6 026
    Par défaut
    Il faut indexer la colonne "type" de la 1ère table.
    http://dev.mysql.com/doc/refman/5.0/...nstraints.html
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre habitué Avatar de mensoif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Points : 129
    Points
    129
    Par défaut
    j'étais également sur cette page,
    ce qui m'étonnait justement c'est que quand je reprenais l'exemple avec product etc.. j'avais toujours cette erreur.

    J'ai donc à ta demande, mis un index dans Mr_tcu sur type, et là ca passe à la compil..

    Or, dans la doc autant que dans les exemples, tous les index sont placés juste avant la déclaration de la clé étrangère. Il n'y a pas d'index de l'attribut réferencé dans les autre tables.

    Erreur dans la doc ? Comment se fait t'il que leur exemple suivis à la lettre ne soit pas correct ? Merci

Discussions similaires

  1. erreur lors de l'ajout d'une nouvelle dépendance
    Par lahmar.abdel1 dans le forum Maven
    Réponses: 1
    Dernier message: 08/02/2010, 11h53
  2. [E-07] Erreur lors de l'ajout d'une feuille
    Par aalex_38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/01/2009, 10h20
  3. Erreur lors de l'ajout dans une table
    Par k_boy dans le forum Bases de données
    Réponses: 14
    Dernier message: 31/03/2008, 15h05
  4. Erreur lors de l'ajout d'une référence web
    Par Pilloutou dans le forum Visual Studio
    Réponses: 2
    Dernier message: 12/02/2007, 15h11
  5. Erreur lors de l'ajout d'une table
    Par FredMines dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/07/2005, 13h13

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