mysql如何在已有數據庫上統(tǒng)一字符集
前言
數據庫里面,部分數據表和數據是latin1的,部分數據表和數據是UTF8,還有部分表,表結構是utf8而數據是latin1。
這種奇葩情況,工作了十幾年的我,還是第一次碰到。下面說一下,怎么樣字符集統(tǒng)一成utf8
1,建一個空數據庫
2,把表結構和數據是utf8的表導出,然后直接導入到新的數據庫中
3,數據表和數據都是latin1的表,先導出表結構和數據,加上--default-character-set=latin1,將導出文件中,latin1改為utf8,在導入到新的數據庫中。
4,表結構是utf8,表數據是latin1的,有二種方法:
4.1,先導出表結構,導入到新的數據庫中。導出數據,加上--default-character-set=utf8,因為表結構是utf8,表數據是latin1,入庫時已亂碼。在將數據導入到新庫中。這種方案有缺點,--default-character-set=utf8,導出的數據可能會有丟失,導出的數據,在導入時可能會報錯。
4.2,可以通過binary字符集做中轉,推薦這種方法
UPDATE user SET user_name = CONVERT(CONVERT(CONVERT(user_name USING latin1) USING binary) USING UTF8);
這種方法,省去了導出導入的麻煩,速度比較快,11w條數據,差不多5-6秒
數據庫設計這塊非常重要,在設計數據庫時一定要考慮清楚。地基不牢,大廈遲早會倒的。
相關文章
mysql實現查詢結果導出csv文件及導入csv文件到數據庫操作
這篇文章主要介紹了mysql實現查詢結果導出csv文件及導入csv文件到數據庫操作,結合實例形式分析了mysql相關數據庫導出、導入語句使用方法及操作注意事項,需要的朋友可以參考下2018-07-07
mysql 如何使用JSON_EXTRACT() 取json值
這篇文章主要介紹了mysql如何使用JSON_EXTRACT() 取json值的操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
解決大于5.7版本mysql的分組報錯Expression #1 of SELECT list is not in GR
這篇文章主要介紹了解決大于5.7版本mysql的分組報錯Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated問題,需要的朋友可以參考下2019-10-10

