首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在phpmyadmin中添加外键约束

无法在phpmyadmin中添加外键约束
EN

Stack Overflow用户
提问于 2016-07-12 06:18:24
回答 1查看 2.8K关注 0票数 0

在phpmyadmin中创建两个表时,我得到了如下错误。

MySQL说:文档

#1215 -无法添加外键约束

我的桌子结构是

代码语言:javascript
复制
CREATE TABLE `iwd_storelocator_manufacturer` (
`entity_id`  int(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
`name`  varchar(255) NOT NULL ,
`code`  varchar(255) NOT NULL ,
`grayscale_image`  varchar(255) NULL ,
`color_image`  varchar(255) NULL ,
PRIMARY KEY (`entity_id`)
);

CREATE TABLE `iwd_storelocator_manufacturer_to_store` (
`manufacturer_id`  int(11) UNSIGNED NOT NULL ,
`store_id`  int(11) NOT NULL ,
`preferred`  int NULL ,
PRIMARY KEY (`manufacturer_id`, `store_id`),
FOREIGN KEY (`store_id`) REFERENCES `iwd_storelocator_store` (`store_id`) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (`manufacturer_id`) REFERENCES `iwd_storelocator_manufacturer` (`entity_id`) ON DELETE RESTRICT ON UPDATE CASCADE
);

你能告诉我里面有什么问题吗?

这是我的iwd_storelocator_store表

商店

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 06:30:30

为了准确地知道出了什么问题,您必须签入LATEST FOREIGN KEY ERROR部分。

使用此查询查找以下内容:

代码语言:javascript
复制
SHOW ENGINE INNODB STATUS

此外,请确保所有数据类型都是相同的:子列的数据类型必须与父列中的数据类型匹配。

如果问题是表的创建顺序(这可能导致此错误),那么只需运行set foreign_key_checks=0,以便您可以按任何顺序创建表,而不必在创建子表之前创建所有父表

最后,确保所有表的编码都是相同的。

编辑:在您的例子中,您还应该给出iwd_storelocator_store表的结构

既然我们有了您的iwd_storelocator_store store_id 表,我认为您应该在store_id列上创建一个索引,因为它不是表的主键。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38321305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档