我正在尝试使用以下脚本将外键添加到我的表中:
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
的新索引。
我的外键返回一个索引 帮我看看为什么会这样?
最佳答案
MySQL 自动创建一个索引来支持每个外键约束,除非已经存在合适的索引。索引的创建表明(但并不能证明)约束已成功创建。这并不是约束创建失败的迹象。要验证约束是否存在,请尝试插入违反约束的行。
编辑添加:
另请注意,您应该使用 InnoDB storage engine如果您想强制执行外键约束。默认默认值为 MyISAM MySQL 5.5 之前的版本中,该引擎仍然可用,因此如果您不知道此问题,那么您可能正在使用该引擎。
关于Mysql 外键创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917820/