我无法在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)
有什么帮助吗?
谢谢
最佳答案
请确保statuts
和gardes
表的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/