Pages : 1
#1 Le 06/07/2010, à 12:03
- james_sunderland
sql primary key et foreign key
salut tout le monde
j'utilise mysql
j'ai créer 2 tables
une table a 2 attribut dont 1 est une clé primaire
et dans la 2eme table il y a aussi 2 attribut :
le premiere attribut est une clé primaire et le 2eme et une clé etrangere referenciée sur la clé primaire de la 1ere table.
Donc se que je veux savoir est ce que quand j'ajoute une entité dans la 2eme table la cle étarangere doit exister dans la 1ere table ?
et si j'efface une entité de la permiere table et elle a une entité qui la correspend dans la 2 eme table est ce que l'entité de la 2eme table va ete effacé ?
j'espere que vous m'avez compris
merci .
Hors ligne
#2 Le 06/07/2010, à 17:10
- yohann
Re : sql primary key et foreign key
bonjour, pour commencer la gestion des clés étrangère n'est pas possible si tu utilise le moteur de stockage par défaut (MyIsam) mais possible si tu utilise le moteur innoDB.
ensuite il y a plusieurs comportement possible pour la création et la suppression d'enregistrements, cela dépend de la structure de tes tables.
tout cela est bien expliqué en français sur le site de mysql
http://dev.mysql.com/doc/refman/5.0/fr/innodb-foreign-key-constraints.html
je te laisse lire, et revenir vers moi si tu as des questions.
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#3 Le 06/07/2010, à 18:26
- james_sunderland
Re : sql primary key et foreign key
merci yohann pour votre aide , mais j'ai une aute question pour les type myisma et innodb quand je crée une table depuis le terminal avec mysql elle est par defaut myisam donc ma question est si je peux choisir innodb depuis le terminal.
merci encore
Hors ligne
#4 Le 07/07/2010, à 01:26
- funkalee
Re : sql primary key et foreign key
exemple :
CREATE TABLE `Lang`(
`idLang` bigint(20) unsigned AUTO_INCREMENT,
`codeLang` varchar(8),
CONSTRAINT `pk_Lang_idLang`
PRIMARY KEY(`idLang`),
unique key `idx_Lang_code`(`codeLang`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
ca doit pas etre une bonne idée de changer le moteur de base par défaut alors que a la création de table tu peux simplement rajouter la clause engine
Hors ligne
Pages : 1