`

[MySQL]ERROR 1822 : Failed to add the foreign key constraint. Missing index for

阅读更多

在处理跨schema添加外键的时候,使用语句添加:

ALTER TABLE `indoor`.`FAS_CABINET`
ADD CONSTRAINT `FAS_CABINET_FK01`
  FOREIGN KEY (`ASSET_MANAGER_GUID`)
  REFERENCES `storage`.`COMMON_PERSONS` (`GUID`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

 报错:Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'FAS_CABINET_FK01' in the referenced table 'COMMON_PERSONS'

其中GUID在`storage`.`COMMON_PERSONS`中并非primary key,也不是unique key

 

解决:可以看到因为GUID不是index导致,所以需要换成指向primary key或者把GUID变成index或者设为unique key

 

后续:

这个错误是由于跨库导致的,同一个库并没有index这个需要.因此可以使用同义词处理

如果是ORACLE,可以使用synonym来建立指向外部库的表

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics