2016 - 2024

感恩一路有你

mysql创建外键约束总不成功 mysql不能添加外键,急求?

浏览量:1388 时间:2021-03-15 14:01:12 作者:admin

mysql不能添加外键,急求?

在mysql中创建外键时,我们经常会遇到问题并失败。这是因为MySQL中有很多细节需要注意。在总结和查阅资料后,我列出了以下常见的原因。

1. 两个字段的类型或大小不完全匹配。例如,如果一个是int(10),那么外键也必须设置为int(10),而不是int(11),并且不能是tinyint。此外,还必须确定两个字段中的一个是否已签名,另一个是否未签名(即无签名)。这两个字段必须严格匹配。有关已签名和未签名的详细信息,请参阅:http://www.verysimple.com/blog/?p=57

2。试图设置外键的字段没有索引或不是主键。如果其中一个不是主键,则必须首先为其创建索引。

3. 其中一个或两个表是MyISAM引擎的表。如果要使用外键约束,则表必须是InnoDB引擎(实际上,如果两个表都属于MyISAM引擎,则根本不会发生此错误,但不会生成外键,只会生成索引)。您需要检查表的引擎类型。

4. 外键的名称不能重复。您应该检查您的数据库以确保键名是唯一的,或者您可以在键名之后添加一些随机字符来测试这是否是原因。

5. 您可能已在delete上设置了set null,但相关的键字段设置为not null。您可以通过修改cascade的属性值或将field属性设置为allownull来解决这个问题。

6. 请确保您的charset和collate选项在表级别和字段级别是一致的。

7. 您可能已经为外键设置了默认值,例如default=0。

8. alter声明语法错误

出现错误时,请仔细检查数据库表和字段的设计。我建议您尝试使用工具来设计和创建一个数据库,以减少出错的概率。

mySQL添加外键报错说缺少索引怎么回事?

MySQL add foreign key prompt missing index,因为您没有向外键添加索引。添加外键索引后,不会报告错误。

mysql创建外键约束总不成功 mysql无法添加外键约束 mysql如何添加外键约束

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。