麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
518
2023-11-10
本篇内容主要讲解“mysql错误1022如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql错误1022如何解决”吧!
mysql错误1022是外键名称重复导致的,其解决办法:1、通过“select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME=...”命令查找重复外键名称;2、将外键名重新命名即可。
mysql报错Error Code: 1022. Cant write; duplicate key in table `xxx`
说明:此错误是外键名称重复了
查找重复外键名称,哪里被用到了,sql如下:
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE whereCONSTRAINT_NAME=重复的外键名称如果没问题,则重新命名即可。
相关拓展:
1 外键的定义
外键是某个表中的一列,它包含在另一个表的主键中。
外键也是索引的一种,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联。
一张表可以有一个外键,也可以存在多个外键,与多张表进行关联。
2 外键的作用
外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余。
主要体现在以下两个方面:
阻止执行
从表插入新行,其外键值不是主表的主键值便阻止插入。
从表修改外键值,新值不是主表的主键值便阻止修改。
主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行)。
主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。
级联执行
主表删除行,连带从表的相关行一起删除。
主表修改主键值,连带从表相关行的外键值一起修改。
3 外键创建限制
父表必须已经存在于数据库中,或者是当前正在创建的表。
如果是后一种情况,则父表与子表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
必须为父表定义主键。
外键中列的数目必须和父表的主键中列的数目相同。
两个表必须是 InnoDB 表,MyISAM 表暂时不支持外键。
外键列必须建立了索引,MySQL 4.1.2 以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立。
外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如 int 和tinyint 可以,而 int 和 char 则不可以。
到此,相信大家对“mysql错误1022如何解决”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。