Bonjour, j'ai actuellement une table de créé et je voudrai créé une autres table avec un clé FOREIGN KEY sur la première table mais MYSQL me retourne une erreur 1005 ( errno 105 ). Selon le site de MySQL, cette erreur est du au
FOREIGN KEY mais je ne sais pas pourquoi ????

voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
 
CREATE  TABLE IF NOT EXISTS `tlkTemplate` (
  `templateID` TINYINT UNSIGNED NOT NULL ,
  `templateName` VARCHAR(30) NOT NULL ,
  `image` VARCHAR(30) NULL ,
  PRIMARY KEY (`templateID`) ,
  UNIQUE INDEX `tlkTemplate_templateName_u` (`templateName` ASC) ,
  UNIQUE INDEX `tlkTemplate_image_u` (`image` ASC)
)ENGINE = InnoDB;
 
 
CREATE TABLE IF NOT EXISTS `tblUser` (
  `userID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `login` VARCHAR(15) BINARY NOT NULL ,
  `pseudo` VARCHAR(15) NOT NULL ,
  `email` VARCHAR(45) NOT NULL ,
  `password` CHAR(32) NOT NULL ,
  `dateInscription` DATE NULL ,
  `dateDerVisite` DATE NULL ,
  `sexe` ENUM('H','F') NOT NULL ,
  `dateNaissance` DATE NULL ,
  `nom` VARCHAR(45) NOT NULL ,
  `prenom` VARCHAR(45) NOT NULL ,
  `compteActif` ENUM('O','N') NULL DEFAULT 'N',
  `image` VARCHAR(20) NULL ,
  `newsLetters` ENUM('O','N') NULL DEFAULT 'O',
  `templateID` TINYINT UNSIGNED NOT NULL,
  UNIQUE INDEX `tblUser_login_u` (`login` ASC) ,
  UNIQUE INDEX `tblUser_pseudo_u` (`pseudo` ASC) ,
  UNIQUE INDEX `tblUser_email_u` (`email` ASC) ,
  PRIMARY KEY (`userID`),
  CONSTRAINT `tblUser_templateID_FK`
    FOREIGN KEY (`templateID` )
    REFERENCES `tlkTemplate` (`templateID` )
    ON DELETE SET NULL
    ON UPDATE NO ACTION
)ENGINE = InnoDB;