Mysql 外键创建

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

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

最佳答案

MySQL 自动创建一个索引来支持每个外键约束,除非已经存在合适的索引。索引的创建表明(但并不能证明)约束已成功创建。这并不是约束创建失败的迹象。要验证约束是否存在,请尝试插入违反约束的行。

编辑添加:

另请注意,您应该使用 InnoDB storage engine如果您想强制执行外键约束。默认默认值为 MyISAM MySQL 5.5 之前的版本中,该引擎仍然可用,因此如果您不知道此问题,那么您可能正在使用该引擎。

关于Mysql 外键创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917820/

相关文章:

mysql - 使用 MySQL 移动传递闭包子树

php - 通过ajax从mySql获取变量到jQuery

PHP MySQL 将信息从表单插入数据库

sql - 如何使用 Access 表单中的组合框使用外键更新记录但显示该键的查找?

sql - Hive DISTINCT() 用于所有列?

sql - 计算一段时间后或基于辅助列的重复出现次数

swift - fatal error : Index out of range - Swift 4 and Firebase

对象数组上的 Javascript indexOf

mysql 喜欢性能提升

python - 时间序列中的停止绑定(bind) pandas 索引