参考:https://stackoverflow.com/questions/58550408/error-when-foreign-referencing-in-mysql-error-3780
这是由于两个表的table collation不同导致的.
修改表collation:
ALTER TABLE `basename`.`tablename` COLLATE=utf8_bin;
发现仍然不行,这是由于
1.修改数据库的collation,对修改后新建的表才会生效,已存在表不生效
2.修改表的 collation,对修改后新建的字段才会生效,已存在字段不生效
3.修改字段的 collation,对修改后新写入生效,同时对已存在的也生效
也就是说即使修改了表的collation,对现有column是不生效的,所以需要新建column