我无法在phpmyadmin上执行此查询以升级我的sql test_db:

    CREATE TABLE IF NOT EXISTS `demandes_gardes` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nom` VARCHAR(255) NULL,
  `prenom` VARCHAR(255) NULL,
  `matricule` VARCHAR(255) NULL,
  `chambre` VARCHAR(255) NULL,
  `autre` TEXT NULL,
  `garde_id` INT NOT NULL,
  `statut_id` INT NOT NULL,
  `created` DATETIME NULL,
  `updated` DATETIME NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_demandes_gardes_gardes1_idx` (`garde_id` ASC),
  INDEX `fk_demandes_gardes_statuts1_idx` (`statut_id` ASC),
  CONSTRAINT `fk_demandes_gardes_gardes1`
    FOREIGN KEY (`garde_id`)
    REFERENCES `gardes` (`id`)
    ON DELETE CASCADE
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_demandes_gardes_statuts1`
    FOREIGN KEY (`statut_id`)
    REFERENCES `statuts` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


我得到:


  #1005-无法创建表“ test_db.demandes_gardes”(错误号:150)


有什么帮助吗?
谢谢

最佳答案

请确保statutsgardes表的id列设置为主键。我测试了相同的代码,并且当其中一个外键不是其自己的表中的主键时,仅收到1005错误。假设存在一个有效的statuts和gardes表,每个表都带有一个整数id列。

ALTER TABLE `statuts`
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);

ALTER TABLE `gardes`
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);

关于mysql - #1005-无法创建表'test_db.demandes_gardes'(errno:150)(详细信息...),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33715965/

10-14 07:42