关于mysql外键的几个报错及解决

  • Post author:
  • Post category:mysql


错误代码: [HY000][1215] 

原因:本表中要创建外键的列,和主表中的目标列类型不匹配(如int和 int unsigned)

解决:改一样就行

错误代码: [HY000][1822]      ……Failed to add the foreign key constraint.…… Missing index for constraint

原因:主表的目标列不是唯一属性的

比如我遇到的这个是用户表1——股票分组表2——分组中的股票表3:表2的uid用表1的做外键主键,表3的gid用表2的gid做外键,而表二的gid属性由于不是主键,忘了加unique——注意一点(至少是在mysql里),外键的目标列必须是那张表里的一个唯一属性列:主键自然可以,但不一定要是主键

解决:确保主表中的目标列是唯一的

(另外:感觉我这仨表的模式好像不太好,有无大佬教教)

后续再遇到相关的问题再更新

补一个

ERROR 1060 (42S21): Duplicate column name

原因:很简单,重复的列名——但是要记一下的原因是:如果用idea专业版(2022.1.4)里面的数据库功能修改的话,有可能是你第一次的修改中,一部分alert语句正常执行了(比如加入了一列xxid),在中途的某一个寄了,然后idea给出了一个其他报错信息。

此时前面的修改没有被回滚,之后你改对了中途的那条语句再执行,就会提示xxid出现这个报错——看着没重复啊它怎么提醒我重复列。

解决:关了修改窗口刷新一下就看到了(为什么数据库修改的窗口跟设置窗口一眼打开了就不能点外面啊 不知道idea之后或者之前的版本有没有这个问题)



版权声明:本文为qq_37414878原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。