【问题标题】:MySQL ADD CONSTRAINT fail with [Err] 1215 - Cannot add foreign key constraintMySQL ADD CONSTRAINT 失败并出现 [Err] 1215 - 无法添加外键约束
【发布时间】:2017-07-28 11:38:13
【问题描述】:

我用 SQL 创建了两个表:

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`)
);

但我无法更改食物表以添加约束:

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

带有错误信息:

[SQL] ALTER TABLE food ADD CONSTRAINT fk_food_foodType_id FOREIGN KEY(foodType_id) REFERENCES foodType(id);
[Err] 1215 - 无法添加外键约束

【问题讨论】:

  • 只是好奇,您是否使用默认引擎=innoDB 创建数据库;所有的桌子?

标签: mysql sql


【解决方案1】:

您指的是外键约束定义中的foodType 表。您应该向其添加约束之前创建该表。

此外,该表应该有字段id作为主键,匹配foodType_id的类型。

【讨论】:

  • 3 分钟后。;)
猜你喜欢
  • 2015-02-04
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 2015-01-24
  • 2013-06-02
  • 2013-09-26
相关资源
最近更新 更多