在phpmyadmin中创建两个表时,我得到了如下错误。
MySQL说:文档
#1215 -无法添加外键约束
我的桌子结构是
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表
商店
发布于 2016-07-12 06:30:30
为了准确地知道出了什么问题,您必须签入LATEST FOREIGN KEY ERROR部分。
使用此查询查找以下内容:
SHOW ENGINE INNODB STATUS此外,请确保所有数据类型都是相同的:子列的数据类型必须与父列中的数据类型匹配。
如果问题是表的创建顺序(这可能导致此错误),那么只需运行set foreign_key_checks=0,以便您可以按任何顺序创建表,而不必在创建子表之前创建所有父表。
最后,确保所有表的编码都是相同的。
编辑:在您的例子中,您还应该给出iwd_storelocator_store表的结构
既然我们有了您的iwd_storelocator_store store_id 表,我认为您应该在store_id列上创建一个索引,因为它不是表的主键。
https://stackoverflow.com/questions/38321305
复制相似问题