Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2930 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Mysql et clef etrangere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mysql et clef etrangere

n°1247047
mars47058
Posté le 16-11-2005 à 19:40:09  profilanswer
 

salut a tous !
 
voila, j'ai bien lu le manuel mysql si dessous,
 
http://dev.mysql.com/doc/refman/5. [...] aints.html
 
http://dev.mysql.com/doc/refman/5. [...] aints.html
 
mais voila, mais clef étrangère ne marche pas !
alors, si quelqun a un instant pour tester ce script, et voir ou est l'erreur, ouest l'indice qui va pas, ca serait cool.
j'ai passé 3 heure dessus, et la, j'ai beau le lire, je vois rien !
 

Code :
  1. CREATE TABLE `has_claim` (
  2.   `CLIENT_ID` int(10) unsigned NOT NULL default '0',
  3.   `CLAIM_ID` int(10) unsigned NOT NULL default '0',
  4.   PRIMARY KEY  (`CLIENT_ID`,`CLAIM_ID`),
  5.   INDEX (`CLIENT_ID`,`CLAIM_ID`)
  6. ) TYPE=InnoDB;
  7. CREATE TABLE `is_insure` (
  8.   `CLIENT_ID` int(10) unsigned NOT NULL default '0',
  9.   `CONTRACT_TYPE` int(10) unsigned NOT NULL default '0',
  10.   PRIMARY KEY  (`CLIENT_ID`,`CONTRACT_TYPE`),
  11.   INDEX (`CLIENT_ID`,`CONTRACT_TYPE`)
  12. ) TYPE=InnoDB;
  13. CREATE TABLE `damage_type` (
  14.   `DAMAGE_TYPE` int(10) unsigned NOT NULL default '0',
  15.   `CAR_DAMAGE` decimal(10,0) default '1',
  16.   `IMMATRICULATION_CAR_1` decimal(1,0) default '2',
  17.   `IMMATRICULATION_CAR_2` decimal(1,0) default '3',
  18.   `CIVIL_DAMAGE` decimal(1,0) NOT NULL default '0',
  19.   `PRIVATE_RESPONSABILITY` decimal(1,0) default '5',
  20.   `PETS_RESPONSABILITY` decimal(1,0) default '6',
  21.   `BUILDER_RESPONSABILITY` decimal(1,0) default '7',
  22.   `HOUSE_LANDOWNER_RESPONSABILITY` decimal(1,0) default '8',
  23.   `FURNITURE_DAMAGE` decimal(1,0) default '9',
  24.   `FIRE` decimal(1,0) default '10',
  25.   `THUNDERSTORM` decimal(1,0) default '11',
  26.   `ELEMENTARY` decimal(1,0) default '12',
  27.   `GLASS_BRAKE` decimal(1,0) default '13',
  28.   `WATTER` decimal(1,0) default '14',
  29.   `BURGLARY` decimal(1,0) default '15',
  30.   `HOUSE_DAMAGE` decimal(1,0) default '16',
  31.   PRIMARY KEY  (`DAMAGE_TYPE`),
  32.   INDEX (`DAMAGE_TYPE`)
  33. ) TYPE=InnoDB COMMENT='InnoDB free: 4096 kB';
  34. CREATE TABLE `claim` (
  35.   `CLAIM_ID` bigint(20) unsigned NOT NULL auto_increment,
  36.   `CUSTOMER_ID` bigint(20) unsigned NOT NULL default '0',
  37.   `CUSTOMER_NAME` varchar(64) NOT NULL default '',
  38.   `CONTRACT_ID` bigint(20) unsigned NOT NULL default '0',
  39.   `CLAIM_CATEGORY` varchar(64) NOT NULL default '',
  40.   `CLAIM_DESCRIPTION` varchar(255) NOT NULL default '',
  41.   `CLAIM_DATE` datetime NOT NULL default '0000-00-00 00:00:00',
  42.   `DAMAGE_AMOUNT` decimal(2,0) NOT NULL default '0',
  43.   `PICTURE` blob NOT NULL,
  44.   `CLAIM_STATUS` varchar(16) NOT NULL default '',
  45.   `ACTOR` varchar(45) NOT NULL default '',
  46.   `DAMAGE_STREET` varchar(45) NOT NULL default '',
  47.   `DAMAGE_HOUSE_NUMBER` decimal(4,0) NOT NULL default '0',
  48.   `DAMAGE_TOWN` varchar(45) NOT NULL default '',
  49.   `DAMAGE_TOWN_POST_CODE` decimal(5,0) NOT NULL default '0',
  50.   `DAMAGE_TYPE` int(10) unsigned NOT NULL default '0',
  51.   PRIMARY KEY  (`CLAIM_ID`),
  52.   INDEX (`CLAIM_ID`,`DAMAGE_TYPE`)
  53. ) TYPE=InnoDB;
  54. CREATE TABLE `client` (
  55.   `CLIENT_ID` int(10) unsigned NOT NULL auto_increment,
  56.   `GENDER` decimal(1,0) NOT NULL default '0',
  57.   `NAME` varchar(255) NOT NULL default '',
  58.   `FAMILY_NAME` varchar(255) NOT NULL default '',
  59.   `BIRTHDATE` datetime NOT NULL default '0000-00-00 00:00:00',
  60.   `ADDRESS` varchar(255) NOT NULL default '',
  61.   `HOUSE_NUMBER` decimal(4,0) NOT NULL default '0',
  62.   `POST_CODE` decimal(5,0) NOT NULL default '0',
  63.   `TOWN` varchar(255) NOT NULL default '',
  64.   `PHONE1` decimal(15,0) NOT NULL default '0',
  65.   `PHONE1_TIME_FROM` decimal(2,0) NOT NULL default '0',
  66.   `PHONE1_TIME_TO` decimal(2,0) NOT NULL default '0',
  67.   `PHONE2` decimal(15,0) NOT NULL default '0',
  68.   `PHONE2_TIME_FROM` decimal(2,0) NOT NULL default '0',
  69.   `PHONE2_TIME_TO` decimal(2,0) NOT NULL default '0',
  70.   `EMAIL` varchar(150) NOT NULL default '',
  71.   `CONTRACT_TYPE` decimal(1,0) NOT NULL default '0',
  72.   PRIMARY KEY  (`CLIENT_ID`),
  73.   INDEX (`CLIENT_ID`)
  74. ) TYPE=InnoDB;
  75. CREATE TABLE `contract_type` (
  76.   `CONTRACT_TYPE` int(10) unsigned NOT NULL auto_increment,
  77.   `DESCRIPTION` varchar(255) NOT NULL default '',
  78.   PRIMARY KEY  (`CONTRACT_TYPE`),
  79.   INDEX (`CONTRACT_TYPE`)
  80. ) TYPE=InnoDB;
  81. ALTER TABLE `csldev`.`damage_type` ADD CONSTRAINT `FK_damage_type_1` FOREIGN KEY `FK_damage_type_1` (`DAMAGE_TYPE`)
  82.     REFERENCES `claim` (`DAMAGE_TYPE`)
  83.     ON DELETE CASCADE
  84.     ON UPDATE CASCADE;
  85. ALTER TABLE `csldev`.`is_insure` ADD CONSTRAINT `FK_is_insure_2` FOREIGN KEY (`CLIENT_ID`)
  86.   REFERENCES `insured_client` (`CLIENT_ID`)
  87.   ON DELETE CASCADE
  88.   ON UPDATE CASCADE,
  89. ALTER TABLE `csldev`.`is_insure` ADD CONSTRAINT `FK_is_insure_1` FOREIGN KEY (`CLIENT_ID`)
  90. REFERENCES `insured_client` (`CLIENT_ID`)
  91.   ON DELETE CASCADE
  92.   ON UPDATE CASCADE;
  93. ALTER TABLE `csldev`.`has_claim` ADD CONSTRAINT `FK_has_claim_1` FOREIGN KEY `FK_has_claim_1` (`CLAIM_ID`)
  94.     REFERENCES `claim` (`CLAIM_ID`)
  95.     ON DELETE CASCADE
  96.     ON UPDATE CASCADE,
  97. ADD CONSTRAINT `FK_has_claim_2` FOREIGN KEY `FK_has_claim_2` (`CLIENT_ID`)
  98.     REFERENCES `client` (`CLIENT_ID`)
  99.     ON DELETE CASCADE
  100.     ON UPDATE CASCADE;


 
alors, une idée sur ces indices ?
 
Mars
   

mood
Publicité
Posté le 16-11-2005 à 19:40:09  profilanswer
 

n°1247743
mars47058
Posté le 17-11-2005 à 16:44:04  profilanswer
 

bon, ba voila, apres avoir "partiellement" réussi a créer des clefs, j'ai viré celle pour lesquelles j'y arivais pas.
merci pour ceux qui on pris le temps de lire !
 
pour ceux qui ont le meme probleme, faire attention au type de chaque colone (meme si une conversion est sensée s'effectuer) et créer vos index 1 par 1, pas comme dans ma premiere table en haut.
et, bon courage !

n°1247959
moi23372
Posté le 17-11-2005 à 21:33:29  profilanswer
 

j'ai eu l'occasion de testé mysql le weekend dernier, c'est vraiment de la bouse niveau contrainte d'intégrité de référence. Quand je pense que certain appele ça un SGBD! halalala, il a encore bcp à faire pour rattrapé SQL SERVER et ORACLE.

n°1248005
betsamee
Asterisk Zeperyl
Posté le 17-11-2005 à 22:46:00  profilanswer
 

moi23372 a écrit :

j'ai eu l'occasion de testé mysql le weekend dernier, c'est vraiment de la bouse niveau contrainte d'intégrité de référence. Quand je pense que certain appele ça un SGBD! halalala, il a encore bcp à faire pour rattrapé SQL SERVER et ORACLE.


troll
MySQL est un honnete SGBD certes pas comparable aux mastodontes  precites (le prix des licences non plus d ailleurs)
la version 5 d ailleurs finira d integrer les fonctionnalites qui lui manquent
alors cracher sur mySQL non dtp


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Mysql et clef etrangere

 

Sujets relatifs
Question connection locale sur base MySQLImpossible de créé une table mysql
[Résolu] Fichier texte <- PHP -> MySQLBase de données Acces ou MySQL ?
MYSQL++/C++ gccApache 2 + MySQL 5 + PHP 5 : Impossible de se connecter au SGDB
[Mysql]Resolu Probleme de migration 3.23 -> 4.1[MySQL] Requêtes plus propres
serveur php/mysql en prod sur XP Pro ?[mysql] Réorganiser id pour garder continuité ?
Plus de sujets relatifs à : Mysql et clef etrangere


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR