幾年前設計我的應用程序數據庫時出現了錯誤,並且我的表和表字段的排序規則設置混合在一起。其中一些是utf8_general_ci,其中一些是utf8_unicode_ci。將utf8_general_ci表和字段轉換爲utf8_unicode_ci
當連接具有不同排序規則的表時,這會導致問題。現在,我打算更改排序規則設置並使它們相同:utf8_unicode_ci。我將在我所有的表上運行這兩個SQL查詢。
ALTER TABLE `table1` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `table1` CHANGE `Action` `Action` VARCHAR(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
我的問題是,運行這兩個SQL查詢是否打破任何字段值,尤其是包含重音字符的字段值?或者運行這兩個查詢是否安全?
期待您的來信。
感謝您的回答!
謝謝你的親切回答。 – TamTam 2010-10-19 11:42:58
雖然這兩種字符編碼是兼容的。實際上,它是完全相同的字符編碼,只是在排序時比較它們的一種不同方式。列上的任何索引都可能需要重建,就是這樣。 – thomasrutter 2012-03-20 22:42:49