2014-01-09 27 views
1

是否有UTF_8utf8_general_ci格式整理的MySQL任何區別。是Mysql的整理UTF_8和utf8_general_ci是相似的

我得到了支持票來更新我的所有SQL表來utf8_general_ci格式而非UTF_8

票的主題

「,讓一個更好的互操作性和世界各地的系統之間的信息交換 雖然這並不一定 影響您的性能或安全性,我們建議您設置你的 數據庫表的 「utf8_general_ci」

請幫助我..

謝謝。

+1

你確定你有一個名爲'utf_8'的排序規則嗎?最常見的是'utf8_general_ci','utf8_bin'和'utf8_unicode_ci' .. – DanFromGermany

+0

使用包含utf8字符的幾個較小的表進行備份和try'n'error。 – DanFromGermany

回答

2

您似乎混淆了排序規則和字符集。

  • 字符集定義哪些字符是已知的。
  • 排序規則定義了字符集中的排序順序。這是比較必要的。

您的字符集是utf8,您的排序規則是utf8_general_ci。

所以,實際上你不得不做任何事情。

create table colly(a varchar(2) collate utf8_general_ci); 

select * from information_schema.columns where table_schema = 'playground' 
and table_name = 'colly'\G 
*************************** 1. row *************************** 
      TABLE_CATALOG: NULL 
      TABLE_SCHEMA: playground 
       TABLE_NAME: colly 
      COLUMN_NAME: a 
     ORDINAL_POSITION: 1 
      COLUMN_DEFAULT: NULL 
      IS_NULLABLE: YES 
       DATA_TYPE: varchar 
CHARACTER_MAXIMUM_LENGTH: 2 
    CHARACTER_OCTET_LENGTH: 6 
     NUMERIC_PRECISION: NULL 
      NUMERIC_SCALE: NULL 
     CHARACTER_SET_NAME: utf8 
      COLLATION_NAME: utf8_general_ci 
      COLUMN_TYPE: varchar(2) 
       COLUMN_KEY: 
        EXTRA: 
       PRIVILEGES: select,insert,update,references 
      COLUMN_COMMENT: 
1 row in set (0.00 sec) 

不知道你的意思是你的意見是什麼,但在這裏,這兩條線

 CHARACTER_SET_NAME: utf8 
      COLLATION_NAME: utf8_general_ci 

表明上面我所說的。

+0

您的答案是正確的,但是當您查詢獲取排序規則的信息方案(字段:COLLATION_NAME)時,它會同時顯示utf_8和utf8_general_ci。 –

+0

@BalaVaradarajan編輯我的答案,但我還不明白,究竟是什麼問題。請澄清我的編輯是否解決不了。 – fancyPants

+0

謝謝@fancyPants:我在說的是我在字段COLLATION_NAME中獲取utf8&utf8_general_ci的值: –

0

utf8是字符集,utf8_general_ci是整理順序(如何比較字符)這是一個很好的解釋這個問題的帖子。

utf8 and utf8_general_ci

相關問題