Définiton d'une clé étrangère [mySQL] - Programmation
Marsh Posté le 19-12-2001 à 17:12:01
Normal c'est pas encore effectif !!!
[edtdd]--Message édité par fly LM--[/edtdd]
Marsh Posté le 19-12-2001 à 17:19:18
Ah bon mySQL ne gère pas les clés étrangères ?
Ben merde alors
C'est prévu un jour ou l'autre ?
Marsh Posté le 19-12-2001 à 17:26:42
oibaf2001 a écrit a écrit : Ah bon mySQL ne gère pas les clés étrangères ? Ben merde alors C'est prévu un jour ou l'autre ? |
J'sais pas. Tu trouveras peut-être la réponse là :
http://www.mysql.com
Marsh Posté le 19-12-2001 à 17:42:45
normal c kan tu va faire ta requete
mais si tu cherche, tu trouvera un poste de juju_le_barbare à ce sujet
Marsh Posté le 19-12-2001 à 18:21:36
fly LM a écrit a écrit : Normal c'est pas encore effectif !!! |
J'a dit une connerie, enfin y-a des contraintes :
"In MySQL 3.23.44 and up, InnoDB tables supports checking of foreign key constraints"
Marsh Posté le 19-12-2001 à 18:27:45
Citation : normal c kan tu va faire ta requete |
J'ai effectué une recherche avant de poser la question mais je n'ai rien trouvé. Si tu fais allusion à celui là : http://forum.hardware.fr/forum2.ph [...] &owntopic=
il ne réponds pas du tout à ma question, il explique juste ce qu'est une contrainte d'intégrité référentielle (= clé étrangère).
Citation : J'a dit une connerie, enfin y-a des contraintes : |
Ca c'est très interessant car je viens de vérifier, la version de mySQL que j'ai d'installée est justement la 3.23.44. D'où, retour à la case départ : pourquoi mon script de création de table ignore la clé étrangère ? (je remarque ça non pas par un message d'erreur, mais à l'utilisation car on peut supprimer un réalisateur sans avoir supprimé tous ses films auparavant)
Marsh Posté le 19-12-2001 à 18:41:23
Ton format de table -> c'est MyISAM, ISAM ???
Y-a que le format InnoDB qui apparement supporte les clés étrangères.
Mais bon, tu peux t'en passer des clés étrangères...Non ??
Marsh Posté le 19-12-2001 à 19:10:20
Citation : Ton format de table -> c'est MyISAM, ISAM ??? |
Après vérification c'est MyISAM (en fait c'est le truc par défaut parce que j'ai aucune idée de ce que ça change).
Citation : Y-a que le format InnoDB qui apparement supporte les clés étrangères. |
Bon ben tant pis alors...
Bien sûr je peux m'en passer, mais bon pour moi, les contraintes d'intégrité c'était essentiel pour être sûr et certain d'avoir une base propre. Et ça raccourcit pas mal le code PHP en évitant de faire 36 vérifs à chaque suppression de donnée.
> SteF_DOBERMANN : no problem!
Marsh Posté le 20-12-2001 à 10:30:48
Crée tes tables au format Innodb si tu veux utiliser les clés étrangères :
http://www.innodb.com/
http://www.mysql.com/doc/T/a/Table_types.html
http://www.mysql.com/doc/I/n/InnoDB.html
@+
Marsh Posté le 20-12-2001 à 11:25:08
Quelqu'uns a des infos veritables sur ce type de tables ?
Des tests avec ce qu'il en pense etc..
C gratuit non ?
C plus puissant que l'isam ?
Marsh Posté le 20-12-2001 à 13:28:24
mySQl ne gère pas les contraintes, tu dois les gérer du côté du client !
En tout cas, c'est sur, pas de clé étrangère pour l'instant...
Marsh Posté le 20-12-2001 à 13:44:45
pudaipiai a écrit a écrit : mySQl ne gère pas les contraintes, tu dois les gérer du côté du client ! En tout cas, c'est sur, pas de clé étrangère pour l'instant... |
Tu as lu l'intégrité du topic ???
InnoDB is the first MySQL table type which allows you to define foreign key constraints to guard the integrity of your data.
[edtdd]--Message édité par fly LM--[/edtdd]
Marsh Posté le 20-12-2001 à 13:53:25
benou a écrit a écrit : ouais et pas de select interne non plus |
Les sous requêtes sont normalement prévues au cours de la version 4.x, donc bientôt...
Marsh Posté le 19-12-2001 à 17:06:02
A votre avis qu'est-ce qui merde dans cette définition de clé étangère ? (la table est créée correctement mais la contrainte de clé étrangère n'a aucun effet par la suite)
CREATE TABLE FILM (
code smallint NOT NULL PRIMARY KEY,
titre varchar(100) NULL,
code_realisateur NOT NULL REFERENCES REALISATEUR(code));