2017-03-08 79 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

相关问题