MySQL Forums
Forum List  »  French

Re: aide sur requete avec jointures
Posted by: Jean Molliné
Date: August 17, 2010 10:39PM

Normal : regarde tes clés primaire : elles comportent bien les deux colonnes nécessaires, mais tu y as ajouté la clé étrangère dans la composition: c'est ça qui bloque les contraintes. : je viens de tester en local en les retirant et ça fonctionne parfaitement et j'ai pu créer les tables avec leurs contraintes du premier coup. Ton code ajusté donne ceci :
-- mysql> SHOW CREATE TABLE `modules`\G
CREATE TABLE `modules` (
  `idmodule` bigint(20) unsigned NOT NULL auto_increment,
  `nommodule` varchar(45) default NULL,
  PRIMARY KEY  (`idmodule`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- mysql> SHOW CREATE TABLE `chapitres`\G
CREATE TABLE `chapitres` (
  `idchapitre` bigint(20) unsigned NOT NULL auto_increment,
  `idmodule` bigint(20) unsigned default NULL,
  `rankchapitre` int(10) unsigned NOT NULL default '0',
  `nomchapitre` text,
  PRIMARY KEY  (`idchapitre`,`rankchapitre`),
  KEY `idmodule` (`idmodule`),
  KEY `idchapitre` (`idchapitre`),
  KEY `rankchapitre` (`rankchapitre`),
  CONSTRAINT `chapitres_ibfk_1` 
      FOREIGN KEY (`idmodule`) 
      REFERENCES `modules` (`idmodule`) 
      ON DELETE SET NULL 
      ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- mysql> SHOW CREATE TABLE `sequences`\G
CREATE TABLE `sequences` (
  `idsequence` bigint(20) unsigned NOT NULL auto_increment,
  `idchapitre` bigint(20) unsigned default NULL,
  `ranksequence` int(10) unsigned NOT NULL default '0',
  `nomsequence` text,
  PRIMARY KEY  (`idsequence`,`ranksequence`),
  KEY `idchapitre` (`idchapitre`),
  KEY `idsequence` (`idsequence`),
  KEY `ranksequence` (`ranksequence`),
  CONSTRAINT `sequences_ibfk_1` 
      FOREIGN KEY (`idchapitre`) 
      REFERENCES `chapitres` (`idchapitre`) 
      ON DELETE SET NULL 
      ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- mysql> SHOW CREATE TABLE `briques`\G
CREATE TABLE `briques` (
  `idbrique` bigint(20) unsigned NOT NULL auto_increment,
  `idsequence` bigint(20) unsigned default NULL,
  `rankbrique` int(10) unsigned NOT NULL default '0',
  `nombrique` text,
  PRIMARY KEY  (`idbrique`,`rankbrique`),
  KEY `idsequence` (`idsequence`),
  KEY `idbrique` (`idbrique`),
  KEY `rankbrique` (`rankbrique`),
  CONSTRAINT `briques_ibfk_1` 
      FOREIGN KEY (`idsequence`) 
      REFERENCES `sequences` (`idsequence`) 
      ON DELETE SET NULL 
      ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Note : en fait j'ai compris : regarde plus attentivement les croquis que j'ai fait plus tôt : certaines colonnes sont marquées « PK » (primary Key) mais d'autres sont notées « FK » (Foreign Key) et je crois que c'est ce détail que tu n'avais pas relevé qui t'a conduit à les inclure dans la PK.

______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)



Edited 1 time(s). Last edit at 08/17/2010 10:42PM by Jean Molliné.

Options: ReplyQuote


Subject
Views
Written By
Posted
5249
August 17, 2010 07:45AM
2863
August 17, 2010 09:25AM
2212
August 17, 2010 09:46AM
2373
August 17, 2010 10:21AM
2088
August 17, 2010 10:32AM
2193
August 17, 2010 11:31AM
2337
August 17, 2010 01:12PM
3526
August 17, 2010 06:28PM
Re: aide sur requete avec jointures
2382
August 17, 2010 10:39PM
2163
August 18, 2010 06:13AM
2264
August 18, 2010 06:59AM
2077
August 18, 2010 10:12AM
2196
August 18, 2010 10:40AM
3480
August 22, 2010 04:07AM
2059
August 31, 2010 03:28AM
2480
August 31, 2010 03:29AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.