Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 08/09/2006, 12h01   #1
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 78
Points : 13
Points : 13
Par défaut [PHPMyAdmin] relation entre tables

Bonjour,
Je cherche à lier 2 tables en utilisant phpmyadmin.
Dans ma première table faq j'ai 1 champ faq_id défini en clé primaire et un champ categ_faq defini en index.
dans ma deuxième table j'ai un champ categ_faq défini en clé primaire.
mon but est de lier les champs categ_faq des 2 tables.
J'ai utilisé la fonction gestion des relation dans phpmyadmin mais j'ai à chaque fois le message :

"Aucune clef n'est définie ! (categ_faq)"

Je ne comprend pas ce qui se passe.
phil83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 13h36   #2
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Bonjour,
version de mysql ? Tables en INNODB ?
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 13h51   #3
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 78
Points : 13
Points : 13
mysql 4.1.20 et tables en innoDB
phil83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 14h22   #4
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
As-tu le code SQL que PhpMyAdmin tente d'exécuter ?
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 14h36   #5
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 78
Points : 13
Points : 13
non il n'apparait pas.
C'est une fonction que j'ai déjà utilisé pour d'autres tables. Je suis surpris que ça ne marche pas.
Il faudrait peut être essayer directement la requête SQL, mais je n'ai pas trouvé la syntaxe
phil83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 15h12   #6
Membre éprouvé
 
Avatar de Christophe Charron
 
Homme Christophe Charron
Développeur informatique
Inscription : juillet 2005
Messages : 768
Détails du profil
Informations personnelles :
Nom : Homme Christophe Charron
Âge : 51
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : juillet 2005
Messages : 768
Points : 492
Points : 492
Cela pourrait ressembler à quelque chose comme
Code :
1
2
3
4
ALTER TABLE `table_fille` ADD CONSTRAINT `FK_cat` FOREIGN KEY `FK__cat` (`categ_faq`)
    REFERENCES `table_mere` (`categ_faq`)
    ON DELETE CASCADE
    ON UPDATE CASCADE;
Et regarde par ici pour plus de précisions
__________________
Cordialement,
Christophe Charron
Pour consulter mon site professionnel, vous pouvez cliquer sur le bouton prévu à cet effet, juste sous la signature .
Christophe Charron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 17h40   #7
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 78
Points : 13
Points : 13
J'ai essayé la requête, mais j'ai une erreur :
#1005 - Can't create table './oscomint1/#sql-c35_80ad.frm' (errno: 150)

Apparement c'est que la définition de la clé étrangère est incorrectement formulée dans la table modifiée. Comme l'indique la doc. J'ai essayé la commande : SHOW INNODB STATUS
Mais là ça devient franchement opaque pour moi. Il est temps que le week-end arrive...
Merci pour lr coup de main.
A+
phil83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 16h22   #8
Invité de passage
 
Inscription : octobre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 1
Points : 1
Points : 1
Par défaut Solution

Bonjour,

Il faut que le champ qui correspond à la clé étrangère soit en début de table (derrière la clé primaire), et que ce soit un index. Ensuite, cela fonctionne.
COB_OL 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 16h38.


 
 
 
 
Partenaires

Hébergement Web