2015-11-15 82 views
0

我不能升級我的SQL TEST_DB執行上的phpmyadmin這個查詢:#1005 - 無法創建表 'test_db.demandes_gardes'(錯誤:150)(詳細資料...)

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)

任何幫助嗎? 謝謝

回答

1

請確保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`); 
相關問題