为mysql中的唯一索引创建外键

h6my8fg2  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(339)

产品

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 ... 如何在服务表中生成产品代码参考产品表中的产品代码?

bvn4nwqk

bvn4nwqk1#

外键必须按引用的顺序引用以引用的字段开头的索引。若要引用产品代码,必须在产品代码上有索引(或以产品代码开头)。
另外,通常,您引用表的pk;如果没有其他原因的话,它可以最大限度地减少需要级联的情况。产品代码比自动递增的行标识符更容易更改。

相关问题