2014-01-09 3 views
1

Есть ли разница между тузда комплектовкой UTF_8 и utf8_general_ci форматами.ли 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

Сделайте резервную копию и try'n'error с несколькими меньшими таблицами, содержащими символы utf8. – 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: Я говорю, что я получаю оба значения utf8 и utf8_general_ci в поле COLLATION_NAME: –

0

utf8 - набор символов, а utf8_general_ci - последовательность сортировки (как сопоставляются персонажи) Вот превентивный пост, который объясняет это хорошо.

utf8 and utf8_general_ci

Смежные вопросы