Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec 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 11/04/2011, 15h10   #1
Nouveau Membre du Club
 
Femme Anna
Développeur Java
Inscription : mai 2010
Messages : 105
Détails du profil
Informations personnelles :
Nom : Femme Anna
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : mai 2010
Messages : 105
Points : 33
Points : 33
Par défaut Pas de clé étrangère avec Myisam?

Bonjour!

Je travaille sur une application qui dispose d'une importante BDD dont je viens de recevoir le dump. Ce dump spécifie une utilisation myisam et une syntaxe que je ne comprends pas: l'application nécessite l'utilisation de clés étrangères et la syntaxe est la suivante:
Code :
1
2
3
4
5
6
7
CREATE TABLE `T_Atab` (
  `A_ID_N` int(11) NOT NULL,
  `B_ID_N` int(11) NOT NULL,
...
PRIMARY KEY  (`A_ID_N`,`B_ID_N`),
  KEY `Atab2_FK` (`B_ID_N`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
En fait, j'ai lu sur internet que Myisam ne supporte pas les clés étrangères. Mais ce code m'a l'air de dire le contraire.
J'aimerais svp votre aide pour le comprendre et pour cette question de Myisam et des FK.
Annsen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 16h50   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Bonjour,

Non, ce code ne dit pas le contraire, même si le nom de la contrainte KEY peut le laisser croire . L'habit ne fait pas le moine, et si je nomme la contrainte 'Atab2_antiUV', elle ne protège pas des coups de soleil...

Pour les FK avec MySQL, il faut des tables de type innoDB, et bien sûr que le dit InnoDB soit actif sur le serveur. Ensuite, il faut explicitement définir la contrainte.

Tout est expliqué là: http://dev.mysql.com/doc/refman/5.0/fr/innodb.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
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h13   #3
Nouveau Membre du Club
 
Femme Anna
Développeur Java
Inscription : mai 2010
Messages : 105
Détails du profil
Informations personnelles :
Nom : Femme Anna
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : mai 2010
Messages : 105
Points : 33
Points : 33
Oui merci bcp!
Effectivement cela ne dit pas le contraire.
Annsen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h18   #4
Nouveau Membre du Club
 
Femme Anna
Développeur Java
Inscription : mai 2010
Messages : 105
Détails du profil
Informations personnelles :
Nom : Femme Anna
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : mai 2010
Messages : 105
Points : 33
Points : 33
PS: et je crois avoir découvert qu'en fait c Hibernate (mon appli utilise Hibernate) qui gère, indépendamment du type de BDD choisi, les suppressions cascades et autre au niveau applicatif à la manière d'une FK applicative.
Annsen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web