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 22/03/2006, 11h05   #1
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 142
Points : 37
Points : 37
Par défaut Ajout contrainte FOREIGN KEY

bonjour,

je souhaite créer une base de données sous mysql avec des tables qui contiennent des clés etrangères(FOREIGN KEY). j'ai besoin de renommer ces clé etrangères dans mes tables, et je ne sais pas comment indiquer que ces champs la sont des clés etrangére


supposant que j'ai deux tables :

client(id_client, nom, prenom..)
achat(id_achat,id_acheteur...)

sachant que "id_acheteur" doit etre une clé etrangère (= = 'id_client') comment indique ceci lors de la création de ma table achat??


je sais que le code correspandant est par ex:
ALTER TABLE `achat`
ADD CONSTRAINT `fr_key1` FOREIGN KEY (`id_acheteur`) REFERENCES `client` (`id_client`) ON DELETE CASCADE ON UPDATE CASCADE;


mais je ne vois pas ou metre ceci

SVP aider moi c'est urgent
merci.


[Titre édité par Maximilian]
loukili81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 12h11   #2
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 142
Points : 37
Points : 37
Par défaut clé etrangère

bonjour,
c'est bon , je viens de trouver la solution. en fat il falait choisir , lors de la création de la table, le type de table "innodb", et pour le champs qui doit etre clé etrangère et dont on affecter un autre nom, il faut lui donner propriété "index'.

après on selectionne la table, on affiche sa structure, on clique sur le lien 'relation' (en bas) et on selectionne la clé principale à laquelle est liée cette clé etrangère.

bon courage a tous
loukili81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 13h21   #3
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 132
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 132
Points : 1 190
Points : 1 190
http://dev.mysql.com/doc/refman/5.0/fr/create-table.html
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 13h22   #4
Membre actif
 
Inscription : septembre 2005
Messages : 183
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 183
Points : 175
Points : 175
Envoyer un message via Yahoo à polace
slt , je trouve ke t'as deux alternative.
Code :
1
2
3
4
1-CREATE TABLE client (id_client  auto increment PRIMARY KEY,
 id_acheteur  integer FOREIGN KEY REFERENCES achat(id_acheteur),
prenom  char(32) NOT NULL,
nom varchar(32) NOT NULL)
2- si tu veux la renommer "id_acheteur" il te connaitre au préalable la contrainte puis la supprimer.
Code :
1
2
3
4
 
ALTER TABLE client DROP CONSTRAINT nom_de _la_contrainte_par_default_de_sql  FOREIGN KEY REFERENCES achat(id_acheteur) ensuite 
l'ajoouter 
ALTER TABLE client ADD CONSTRAINT nouveau_nom_de_la_contrainte FOREIGN KEY references achat(id_acheteur)
__________________
la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace
polace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 22h49   #5
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 142
Points : 37
Points : 37
Par défaut clé etrangère

bonsoir,
oui c'est bon , ça marche marci bcp pour votre aide. bon courage a tous.
loukili81 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 23h39.


 
 
 
 
Partenaires

Hébergement Web