我正在尝试使用此脚本将外键添加到我的表中:
ALTER TABLE PRM_CTY
ADD CONSTRAINT fk_PRM_CTY_PRNT_CTY
FOREIGN KEY (PRNT_CTY_ID)
REFERENCES PRM_CTY(ID);
此代码工作但外键不生成。而不是这个,创建一个名为fk_PRM_CTY_PRNT_CTY
的新索引。
我的外键返回一个索引 帮助我为什么会这样?
答案 0 :(得分:0)
MySQL会自动创建一个索引以支持每个外键约束,除非已经存在合适的外键约束。索引的创建表明 - 但未证明 - 约束已成功创建。 不是约束创建失败的标志。要验证约束是否存在,请尝试插入违反约束的行。
已编辑添加:
另请注意,如果要强制执行外键约束,则应使用InnoDB storage engine。在MySQL 5.5之前,默认默认值为MyISAM,并且该引擎仍然可用,因此如果您不知道此问题,那么这可能就是您正在使用的内容。