Mysql外键创建

时间:2014-11-13 20:30:36

标签: mysql sql indexing foreign-keys foreign-key-relationship

我正在尝试使用此脚本将外键添加到我的表中:

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的新索引。

我的外键返回一个索引 帮助我为什么会这样?

1 个答案:

答案 0 :(得分:0)

MySQL会自动创建一个索引以支持每个外键约束,除非已经存在合适的外键约束。索引的创建表明 - 但未证明 - 约束已成功创建。 是约束创建失败的标志。要验证约束是否存在,请尝试插入违反约束的行。

已编辑添加:

另请注意,如果要强制执行外键约束,则应使用InnoDB storage engine。在MySQL 5.5之前,默认默认值为MyISAM,并且该引擎仍然可用,因此如果您不知道此问题,那么这可能就是您正在使用的内容。