begin process at 2012 05 31 00:47:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Divers

 > 

gestion des clés etrangères sous mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

gestion des clés etrangères sous mysql

mercredi 18 février 2009 à 12:26:30 | gestion des clés etrangères sous mysql

ikramta

bonjour tout le monde et bon courage.$
bon depuis pas mal de temps que je suis entrain
de cherché comment creé des clés etrangé sous mysql,
dans le site officiel de mysql il on dit que :
le type INNODB comprend les clé etrangé .
par exemple:
create table chambre(id_ch int(10) not null auto_increment,numero_ch smallint(6) unsigned not null,etage smallint(6) unsigned not null,description_ch text,tarif_extrat decimal(6,6) unsigned,statut_ch enum('v','f'),id_type int(10),hotel varchar(100),primary key (id_ch) ,constraint id_type foreign key(id_type)references type_chambre(id_type) on update cascade,constraint hotel foreign key(hotel)references hotel(hotel) on update cascade)type INNODB;
quand j'excute cet syntaxe elle ne me donne pas le hotel et type_ch comme des clé etrangé mais elle me donne que sont des indexe .
pouvez vous me dire comment je peut resoudre ce problème  ou bien pas de différence entre index et foreign key (bon mes information ditent q'il ya une large difference).
merci d'avance et salut.
mercredi 18 février 2009 à 16:05:06 | Re : gestion des clé etrangé sous mysql

gr43

Salut, toutes les contraintes (primaires, unicité, étrangères) sont gérés par le sgbd par des index.
Si tu insère des données dans ta table avec un champ hotel qui ne référence pas le champ hotel de la table hotel tu devrais avoir une erreur de contrainte de clé étrangère
mercredi 18 février 2009 à 17:35:24 | Re : gestion des clé etrangé sous mysql

ikramta

salut gr43 et merci bien mais j'utilise easyphp version1.8 et il m'affiche ls clés primaire comme des primaires mais les étrangés comme je t'ai dit des index mais dans le script de creation de ma table je lui dit en update cascade et j'ai changé expré le nom hotel dans la table hotel et rien n'est changé dans la table chambre. et quand j'ai fait l'ingenieurie inverse avec DBDesigner il ne m'affiche aucune integritées entre les pages.
samedi 21 février 2009 à 11:41:39 | Re : gestion des clé etrangères sous mysql

Delphiprog

Administrateur CodeS-SourceS
Bonjour,

D'une manière générale :
1- ne pas donner aux contraintes le même nom qu'un champ existant ou qu'un index. Le SGBD risque fort de ne pas comprendre et de s'emmêler les pinceaux.
2- Penses à préfixer les identifiants de contraintes de clé étrangère par FK_ comme on le préconise et les index par IDX_. C'est une bonne habitude à prendre et ça évitera de chercher pourquoi ça ne fonctionne pas.

3- Un index n'a rien à voir avec une clé étrangère, du moins de près.

Voici donc le DDL modifié :

CREATE TABLE chambre (
  id_ch          INT(10)    NOT NULL    AUTO_INCREMENT,
  numero_ch      SMALLINT(6) UNSIGNED    NOT NULL,
  etage          SMALLINT(6) UNSIGNED    NOT NULL,
  description_ch TEXT,
  tarif_extrat   DECIMAL(6,6) UNSIGNED,
  statut_ch      ENUM('v','f'),
  id_type        INT(10),
  hotel          VARCHAR(100),
     PRIMARY KEY ( id_ch ),
  CONSTRAINT FK_id_type FOREIGN KEY ( id_type ) REFERENCES type_chambre(id_type) ON UPDATE CASCADE,
  CONSTRAINT FK_hotel FOREIGN KEY ( hotel ) REFERENCES hotel(hotel) ON UPDATE CASCADE)
TYPE INNODB;
A plus...
May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.


Cette discussion est classée dans : type, id, clé, hotel, etrangé


Répondre à ce message

Sujets en rapport avec ce message

Affichage d'une base de donnée multirelationnelle [ par XDsl13 ] Bonjour.J'ai une base de donnée avec trois tables la table principal article et deux table avec dedans referencé pour l'une des marque de vêtement et If dans query [ par nborges ] Hello,je voudrais savoir si je peux metre un IF dans une query ex:select ID,Descr, Type,if type='R' beginselect.... as Aselect... as Bendelse if  type Probleme avec une requete [ par deadstar2 ] Bonjour à tous, Je n'ai pas un excellent niveau en sql, j'aimerais faire appel à vos connaissances pour une requete dont je n'arrive pas à obtenir ce Pbm de foreign key pas prises en compte [ par romca ] Salut voilà j'ai un pbm sous ma distrib mes foreign key ne sont pas pris en compte et pourtant j'ai aucune erreur.<?xml:namespace prefix = o ns = "urn SELECT sur une table avec clé étrangère en boucle sur une table [ par Sieurcoug ] Bonjour,Je vous expose mon souci qui va vous paraître simple (vu mon niveau en SQL ;)) :Voilà, j'ai besoin de lister les enregistrements de la table S Problème de dates [ par gabrenicolas ] Bonjour à tous, Bon j'ai un problème de date: en effet dans un formulaire, je calcul le nombre d'activité faite par jour dans une colonne A, dans la Requête complexe avec jointures, rollup et calculs [ par kfran85 ] Voici mon problème: Je dois faire une requête pour calculer les commissions sur ventes de commerciaux J'ai cette requête qui me donne bien les montan PROBLEME AVEC UNE REQUETE SQL [ par stade13 ] salut tout le monde , voila j'epsere bien avoir de l'aider a fin de detecté l'erreur CREATE TABLE "FIL" ( "ID_FIL" NUMBER NOT NULL ENABLE , "COULE UPDATE & JOIN avec SQL/FIREBIRD [ par RV2931 ] Bonjour, J'aurai besoin de faire un truc un peu compliqué avec 2,3 tables. Je ne vois pas trop comment car apparemment, Firebird ne gère pas les UPDA Pb Requete SQL JOIN [ par gabrenicolas ] Bonjour à tous, Petit problème avec le code suivant ca ne passe pas JOIN error... Quelqu'un pourrait-il éclairer ma lanterne... le code:[code=vb


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,802 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales