Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2006, 08h39   #1
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
Par défaut clé étrangère et phpmyadmin / wampserver

Bonjour

Voila j'ai crée 2 tables et défini clé primaire et clé étrangère. Cependant lorsque je lance mon fichier sur phpmyadmin chez mon hebergeur aucune erreur. Cependant lorsque je le teste en local (avec wamp server) j'ai une erreur sur la clé étrangère. Quelqu'un a déjà eu ce problème?

merci d'avance
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 08h59   #2
Membre habitué
 
Avatar de rieppe
 
Étudiant
Inscription : octobre 2004
Messages : 115
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2004
Messages : 115
Points : 124
Points : 124
Envoyer un message via MSN à rieppe
Salut,

Il ne s'agirait pas d'un conflit de version de phpmyadmin ?

Peux tu en dire plus, nous fourir du code par exemple ?
rieppe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 09h22   #3
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
CREATE TABLE test (
Ref double,
Commentaires text,
RefLigne integer,
PRIMARY KEY (Ref), /* définition clé primaire */
CONSTRAINT Fk_RefLigne FOREIGN KEY (RefLigne) REFERENCES Ligne (RefLigne) /* définition clé étrangère */
);
 
/* création de la table ligne */
 
CREATE TABLE Ligne (
IdLigne integer, /* identifiant d'une ligne */
RefLigne integer, 
Description text,
PRIMARY KEY (IdLigne) /* définition clé primaire */
);
je n'ai pas eu le temps de vérifier les versions de phpmyadmin utilisées cela peut peut etre venir de la en effet
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 09h26   #4
Membre habitué
 
Avatar de rieppe
 
Étudiant
Inscription : octobre 2004
Messages : 115
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2004
Messages : 115
Points : 124
Points : 124
Envoyer un message via MSN à rieppe
Tu référence ta table ligne par clé étrangère dans la table Test.

Il faut donc que tu créé la table Ligne avant la table Test.

EDIT : Assure toi aussi d'utiliser le type de table InnoDb dans phpmyadmin

J'esprère que ça peut t'aider déja
rieppe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 10h03   #5
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
innodb oui ne t'en fais pas j'ai vérifié
je vais tenter d'inverser l'ordre de création ce soir quand je rentre chez moi
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 21h16   #6
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
toujours la meme erreur sur la creation de la table chantier
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 21h29   #7
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Dans le code que tu nous as donné, il n'y a pas de table chantier

Quel code exécutes-tu exactement ?

Edit : et si tu exécutes le code avec le client mysql console en local ?
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 21h31   #8
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
table test désolé
j'ai bien crée la table ligne (pas d'erreur dessus)
mais cela bloque pour la table test apparament c'est la définition del a clé étrangère si je l'execute avec wampserver en local

et pas d'erreur sur phpmyadmin chez un de mes hebergeurs
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 21h36   #9
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
J'ai édité mon post précédent entre temps

Donc : et si tu exécutes le code avec le client mysql console en local, est-ce que cela fonctionne-t-il ?
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 22h48   #10
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
non cela ne fonctionne pas en local
cela fonctionne avec le client mysql d'un hebergeur
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 23h18   #11
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
C'est cette erreur là que tu as ?

Citation:
ERROR 1005 (HY000): Can't create table 'xxx.test' (errno: 150)
Si oui, c'est normal car pour créer des clés étrangères, il faut :

* Que les deux tables utilisent InnoDB
* Que la colonne référencée soit indexée

Ainsi, ça devrait mieux fonctionner :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE test (
Ref double,
Commentaires text,
RefLigne integer,
PRIMARY KEY (Ref), /* définition clé primaire */
CONSTRAINT Fk_RefLigne FOREIGN KEY (RefLigne) REFERENCES Ligne (RefLigne) /* définition clé étrangère */
) ENGINE=innodb;
 
CREATE TABLE Ligne (
IdLigne integer, /* identifiant d'une ligne */
RefLigne integer, 
Description text,
PRIMARY KEY (IdLigne),
INDEX(refligne) /* définition clé primaire */
) ENGINE=innodb;
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 08h38   #12
Membre du Club
 
Inscription : février 2006
Messages : 206
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 206
Points : 64
Points : 64
cela fonctionne parfaitement en effet
merci de ton aide
Adren est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h57.


 
 
 
 
Partenaires

Hébergement Web