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;
问题解决