我在数据库中有以下表格:
CREATE TABLE `items_link` (
`upc` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`upc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
然后,另一个表:
CREATE TABLE `mws_data` (
`ItemID` float NOT NULL AUTO_INCREMENT,
`Status_response` varchar(15) DEFAULT '',
`Id` varchar(15) NOT NULL DEFAULT '',
`IdType` varchar(7) NOT NULL DEFAULT '',
`IsMultASIN` tinyint(1) DEFAULT '0',
`ASIN` varchar(20) DEFAULT '',
`BrandAmazon` varchar(150) DEFAULT '',
`Title` varchar(1000) DEFAULT '',
`ProductGroup` varchar(150) DEFAULT '',
`ImgURL` varchar(500) DEFAULT '',
`PkgHeight` float DEFAULT NULL,
`PkgWidth` float DEFAULT NULL,
`PkgLength` float DEFAULT NULL,
`PkgWeight` float DEFAULT NULL,
`PackageQuantity` float DEFAULT NULL,
`Unique_Entry_Id` datetime NOT NULL,
PRIMARY KEY (`ItemID`)
) ENGINE=InnoDB AUTO_INCREMENT=116973 DEFAULT CHARSET=utf8
现在,我尝试将“mws_data”中的“Id”字段设置为引用“items_link”中的“upc”的外键:
alter table mws_data add foreign key (Id) references items_link.upc;
但是,此错误显示:
Error Code: 1215. Cannot add foreign key constraint
我尝试在“mws_data.id”中查找不在“items_link.id”中的值,但收到 0 个结果:
select Id
from mws_data
where id not in (select upc from items_link);
如有任何建议,我们将不胜感激!
最佳答案
问题在于:
alter table mws_data add foreign key (Id) references items_link.upc;
试试这个:
alter table mws_data add constraint fk_id foreign key (Id) references items_link(upc);
关于MySQL-添加索引、链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42654125/