CREATE TABLE if NOT EXISTS `PRODUCTS` (
`ID` INT unsigned NOT NULL AUTO_INCREMENT,
`COMPANY_ID` INT(10) unsigned NOT NULL,
`PRODUCT_CODE` VARCHAR(5) NOT NULL,
`PRODUCT_NAME` VARCHAR(15) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE INDEX UNIQUE_COMAPNY_UNIT_CODE (`COMPANY_ID`, `PRODUCT_CODE`)
)
ALTER TABLE services
ADD COLUMN `PRODUCT_CODE` VARCHAR(5),
ADD FOREIGN KEY (`PRODUCT_CODE`) REFERENCES PRODUCTS(`PRODUCT_CODE`) ON DELETE CASCADE ON UPDATE CASCADE;
但是在尝试使上级外键missing index in the references table products
时总是给我这个错误...如何在services表中使product_code转换为products表中的product_code的任何帮助?
答案 0 :(得分:1)
外键必须引用按引用顺序从引用字段开始的索引。要引用PRODUCT_CODE,您必须在PRODUCT_CODE上具有索引(或以PRODUCT_CODE开头)。
通常,您还可以引用表的PK。如果没有其他原因,那么它最大程度地减少了需要级联的情况。与自动递增的行标识符相比,产品代码更容易更改。