mysql字符集問題 錯誤代碼: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_croatian_ci,IMP

 通常是多表或跨庫表查詢致使出現的問題,其緣由是兩張表的字符集不同致使的,那爲何兩張表的字符集會不同?這是因爲架構師或者開發人員在建表的時候不當心選錯字符集的緣由致使的。架構

那好咱們把兩張表(或兩個庫的關聯的兩張表)的字符集更改成同樣就能夠了,是的咱們改過來發,發現變態的MYSQL仍是同樣的錯誤!!!工具

我在網上查了一些資料說的感受很全,但太理論化且不實用(就是解決不了問題)。spa

根據上面的分析咱們想兩張表的字符集改成同樣爲目的確定是能夠的,而後我在想是否是字段也存在字符集的概念,可是可惡的是工具不顯示字段的字符集(緣由是字符集是根據表的字符集來的)。開發

而後我在想MYSQL的存儲方式是文件形式,那是否是字符集更改以前的內容仍是存以前的字符集呢?查詢

咱們採用此命令註釋

SHOW CREATE TABLE  `表名`;文件

查看,果真發現關聯列名的字符集跟當前的字符集不同,那就簡單了,咱們經過命令的方式將此字段強制更改成當前的默認的字符集便可。字符集

ALTER TABLE `表名` CHANGE `列名` `列名` VARCHAR(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '註釋';co

好吧,就這麼簡單,解決不了問題的請留言。架構師

相關文章
相關標籤/搜索