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 10/05/2006, 14h11   #1
Candidat au titre de Membre du Club
 
Avatar de xender
 
Inscription : décembre 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 92
Points : 13
Points : 13
Par défaut [Aide] clés étrangères

Bonjour,

je cherche a ajouter une clé étrangère dans un table et je n'y arrive pas, je suis débutant en mysql alors j'aurai besoin d'un de vos coup de main svp ;-)

voici la structure de ma BDD :
Citation:
--
-- Structure de la table `commande`
--

CREATE TABLE `commande` (
`id_commande` int(11) NOT NULL auto_increment,
`saisi_par` varchar(32) NOT NULL default '',
`num_commande` varchar(20) NOT NULL default '',
`donneur_ordre` varchar(32) NOT NULL default '',
`date_commande` varchar(10) NOT NULL default '',
`marque` varchar(32) NOT NULL default '',
`adresse` varchar(64) NOT NULL default '',
`code_postal` int(5) NOT NULL default '0',
`ville` varchar(32) NOT NULL default '',
`raison_commande` char(3) NOT NULL default '',
`motif_commande` varchar(64) NOT NULL default '',
`service` varchar(32) NOT NULL default '',
`num_client` int(8) NOT NULL default '0',
`num_client_livre` int(8) NOT NULL default '0',
`attention_de_client` varchar(32) NOT NULL default '',
`telephone` varchar(32) NOT NULL default '',
`nom_client` varchar(32) NOT NULL default '',
`numero_rue_client` varchar(64) NOT NULL default '',
`ville_client` varchar(32) NOT NULL default '',
`codePostal_client` int(5) NOT NULL default '0',
`status` varchar(32) NOT NULL default '',
PRIMARY KEY (`id_commande`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ;
Je voudrais rajouté une clé étrangère nommé posts_commande qui ferai réféérence à une autre table nommée tbl_posts_commande qui contiendrait 3 clés (ref_piece, désignation et ref_appareil)

comment dois-je procéder?

Merci de votre aide
a bientôt
Xender
xender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 17h53   #2
Débutant
 
Homme
Inscription : janvier 2004
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : janvier 2004
Messages : 435
Points : 245
Points : 245
salut

c'a donnerai un truc comme ca :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
 
 			 				-- 
 -- Structure de la table `commande`
 -- 
 
 CREATE TABLE `commande` (
   `id_commande` int(11) NOT NULL AUTO_INCREMENT,
'ta_cle_etrangere` int(10) unsigned NOT NULL default '0',
......
......
......
   `status` varchar(32) NOT NULL default '',
   PRIMARY KEY  (`id_commande`)
  KEY `commande_FKIndex1` (`nom_de_ton_champ_cle_etrangere`),
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ;

à cette ligne :

Code :
1
2
3
 
 
'ta_cle_etrangere` int(10) unsigned NOT NULL default '0',

si tu met "NOT NULL" c'a correspondrais à une cardinalités (1,n)
et si tu met "NULL" uniquement c'a correspond à une 0,n.

voila le code, maintenant à toi de l'adapter à ta BDD


bon TAF
moulefrite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 20h55   #3
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
L'intégrité référentielle (=les foreign keys) nécessite des tables InnoDB.

http://dev.mysql.com/doc/refman/5.0/...-overview.html

Le serveur doit donc être démarré avec cette option active.
__________________
"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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h13.


 
 
 
 
Partenaires

Hébergement Web