java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='


查詢視圖時報錯:java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=';

本地環境:mysql8.0.13

異常提示排序規則編碼混亂,mysql8.0.1之后的默認COLLATE為utf8mb4_0900_ai_ci;

檢查視圖中所包含的表發現其中一個建表時 沒有設置編碼,並且其他的表設置的是 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;因此導致混亂;

查看當前數據庫的默認編碼:

mysql> show variables where Variable_name like 'collation%';

查看各表編碼:

mysql> show create table ‘table_name’;

 

解決方案給沒有設置編碼的表重新設置一下:

mysql> alter table table_name default character set utf8mb4 collate=utf8mb4_general_ci;

這樣設置只針對表的,但是表中字段未修改:

mysql> ALTER TABLE table_name convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

 

 

修改完成以后,重新創建視圖!!!!

 

參考編碼修改

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM