mysql中提示字段不兼容导致的无法添加外键

2024-02-28

Referencing column 'xx' and referenced column 'xx' in foreign key constraint 'xxx' are incompatible. ====> 外键约束“xxx”中的引用列“xx”和被引用列“xx”不兼容。

问题

在一次开发过程中,新增了一张业务表,要跟已存在的的业务表建立外键连接,但是一直报Referencing column 'xx' and referenced column 'xx' in foreign key constraint 'xxx' are incompatible. 的错误,百度了一下,说是建立建立外键联系的两个字段数据类型不一致导致的,显然我是不会犯这种错误的。但就是一直报错。。。。

后来发现原来两张表的编码不一致也会导致这个问题。

查看表的编码

查看建表语句,可以看到表的编码格式。

show create table 表名;

由于我在创建表是未指定编码格式,创建表后默认给我指定了,CHARSET=utf8mb4

然而原来的业务表的编码格式为 CHARSET=utf8mb3。

修改编码

发现问题,好!直接粗鲁的删表重建

drop table 表名;

create table 表名(
    xxxx
) charset utf8mb3;

问题解决

PREV
爬虫基础指南(持续更新)
NEXT
现在再读这首诗已不是当年的感受了