putainde clefs etrangeres en mysql - SQL/NoSQL - Programmation
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));
Marsh Posté le 03-12-2003 à 19:32:53
de toute facon, je crois que mysql ne tient pas compte des clefs etrangére.
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.
Marsh Posté le 03-12-2003 à 22:37:03
skelter a écrit : salut, |
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.
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.
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 ?
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é).
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