报错内容
java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation ‘=’
解决方式
1、首先找到相关表,查看表字符集是否一致
show table status from 数据库名称 like 表名
;
2、查看字段是否一致
SHOW FULL COLUMNS FROM 表名称
3、统一表字符集并设置默认字符集
ALTER TABLE 表名称
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4、统一表字段里的字符集
alter table 表名称
convert to character SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5、批量修改sql
SELECT
CONCAT( 'alter table ', a.table_name, ' convert to character SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM
( SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名称') a;
6、修改数据字符集
alter database 数据库名 character set utf8mb4;
7、添加外键
ALTER TABLE 表名称 ADD FOREIGN KEY (字段名) REFERENCES 外键表名称(外键表字段);
ps:在使用前可能会收到外键约束,可以先暂时关闭外键,然后再开启,
SET foreign_key_checks = 0(0表示关闭 1则开启)