Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gbk_bin,IMPLICIT) for Operation '=' SQL State: HY000, Error Code: 1267
資料庫預設編碼與建表時指定的編碼不一致,導致排序規則衝突。常見於安裝時設為 gbk,但建表未明確指定字符集,或混用 gbk_chinese_ci 與 gbk_bin。
CREATE TABLE `teachers` ( `id` int(11) NOT NULL DEFAULT '0', `name` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `department_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
CREATE TABLE `teachers` ( `id` int(11) NOT NULL DEFAULT '0', `name` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `department_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) );
建議:明確指定 DEFAULT CHARSET 可避免遷移或升級時的編碼不一致問題。若需支援多語言,推薦使用 utf8mb4 並搭配 utf8mb4_unicode_ci 排序規則。