putainde clefs etrangeres en mysql

putainde clefs etrangeres en mysql - SQL/NoSQL - Programmation

Marsh Posté le 03-12-2003 à 19:17:24    

salut,
 
en fait seb et moi on voudrait mettre en place des intégrités référentielles entre différentes tables afin d'éviter des enregistrements pas cohérents.
 
pour cela on a fait des clefs étrangères: on un système de gestion d un cabinetr médical et on a parexemple une table cabinet et une table patient. on ne veut dc pas qu il soit possible d insérer un patient ds un cabinet qui n existe pas.
 
ainsi on a fait ceci comme clefs étrangère:
 
 
 
alter table patient add(
constraint cabinet_id2_fk foreign key (cabinet_id) references cabinet(id_cabinet));
 
 
 
et ca marche pas
 
qqn aurait une idee?
 
merci d avance

Reply

Marsh Posté le 03-12-2003 à 19:17:24   

Reply

Marsh Posté le 03-12-2003 à 19:28:30    

format des tables?

Reply

Marsh Posté le 03-12-2003 à 19:32:20    

euh ... je sai pas si c ça que tu veu savoir ...
 
 
create table patient
(id_patient int(4) not null primary key auto_increment,
nom_patient varchar(30),
prenom_patient varchar(30),
sexe_patient varchar(10) check ( sexe_patient like 'M%' or sexe_patient like 'F%' ),
adresse_patient varchar(100),
date_naissance_patient date,
num_secu_patient int(15),
regime_patient varchar(30),
mutuelle_patient varchar(30),
nom_assure varchar(30),
prenom_assure varchar(30),
practicien_id int(4) not null,
cabinet_id int(4) not null);
 
 
 
create table cabinet
(id_cabinet int(4) not null primary key auto_increment,
nom_cabinet varchar(30),
adresse_cabinet varchar(100));

Reply

Marsh Posté le 03-12-2003 à 19:32:53    

de toute facon, je crois que mysql ne tient pas compte des clefs etrangére.


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 03-12-2003 à 19:34:33    

non, ce que je veux c'est le format d'encodage. parce que si ce n'est pas en innoDB, ca ne peut pas marcher.

Reply

Marsh Posté le 03-12-2003 à 22:37:03    

skelter a écrit :

salut,
 
en fait seb et moi on voudrait mettre en place des intégrités référentielles entre différentes tables afin d'éviter des enregistrements pas cohérents.
 
pour cela on a fait des clefs étrangères: on un système de gestion d un cabinetr médical et on a parexemple une table cabinet et une table patient. on ne veut dc pas qu il soit possible d insérer un patient ds un cabinet qui n existe pas.
 
ainsi on a fait ceci comme clefs étrangère:
 
 
 
alter table patient add(
constraint cabinet_id2_fk foreign key (cabinet_id) references cabinet(id_cabinet));
 
 
 
et ca marche pas
 
qqn aurait une idee?
 
merci d avance
 


 
www.mysql.com/documentation tu y verras que les clés étrangères ne sont gérés que pour certains types de tables, tu y verras aussi comment générer ce type de tables, bref tout y est.

Reply

Marsh Posté le 04-12-2003 à 09:53:33    

les clés étrangères, ça ne marche pas avec les tables de type MyISAM (et vu que tu ne spécifies pas le type de table dans tes create table...)
 
-> InnoDB.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 04-12-2003 à 10:49:51    

et c koi la difference entre le type MyISAM et InnoDB ?
Pourquoi ils ont pas fait les clé etrangére dans le type myISAM ? :??:


---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 04-12-2003 à 11:05:01    

InnoDB implémente un tas de trucs que MyISAM n'a pas, notamment les transactions et les clés étrangères.
 
MyISAM est un type de fichier plat avec les avantages (accès très rapide) et les inconvénients que cela implique (peu évolué).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed