2017-03-08 55 views
1

我創建了兩個表與SQL外鍵約束:MySQL的添加約束失敗[錯誤] 1215 - 不能添加

CREATE TABLE `dinnertable` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `tableName` varchar(20) DEFAULT NULL, 
    `tableStatus` int(11) DEFAULT '0', 
    `orderDate` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`) 
); 

CREATE TABLE `food` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `foodName` varchar(20) DEFAULT NULL, 
    `foodType_id` int(11) DEFAULT NULL, 
    `price` double DEFAULT NULL, 
    `mprice` double DEFAULT NULL, 
    `remark` varchar(200) DEFAULT NULL, 
    `img` varchar(100) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
); 

enter image description here

但我不能改變食物表中添加約束:

ALTER TABLE food ADD CONSTRAINT fk_food_foodType_id FOREIGN KEY(foodType_id) REFERENCES foodType(id); 

與錯誤信息:

[SQL] ALTER TABLE food添加約束fk_food_foodType_id FOREIGN KEY(foodType_id)REFERENCES foodType(id);
[錯誤] 1215 -

+0

只是好奇,你用默認引擎= innoDB創建你的數據庫;所有的桌子? –

回答

1

你指的是foodType表中的外鍵約束定義不能添加外鍵約束。您應該在之前爲其添加約束,然後創建該表

此外,該表應將字段id作爲主鍵,匹配foodType_id的類型。

+1

謝謝,你的回答是對的。 – lustre

+1

然後你應該在3分鐘後將它標記爲正確 – e4c5

+0

.;) – lustre

相關問題