Spec-Zone .ru
спецификации, руководства, описания, API

10.4. Добавление Сопоставления к Набору символов

10.4.1. Типы Реализации сопоставления
10.4.2. Выбор ID Сопоставления
10.4.3. Добавление Простого Сопоставления к 8-разрядному Набору символов
10.4.4. Добавление Сопоставления UCA к Набору символов Unicode

Сопоставление является рядом правил, который определяет, как сравнить и сортировать символьные строки. Каждое сопоставление в MySQL принадлежит единственному набору символов. У каждого набора символов есть по крайней мере одно сопоставление, и у большинства есть два или больше сопоставления.

Сопоставление упорядочивает символы, основанные на весах. Каждый символ в наборе символов отображается на вес. Символы с равными весами сравниваются как равный, и символы с неравными весами сравниваются согласно относительной величине их весов.

WEIGHT_STRING() функция может использоваться, чтобы видеть веса для символов в строке. Значение, которое это возвращает, чтобы указать на веса, является двоичной строкой, таким образом, удобно использовать HEX(WEIGHT_STRING(str)) вывести на экран веса в печатаемой форме. Следующий пример показывает, что веса не отличаются для lettercase для букв в 'AaBb' это, если недвоичная нечувствительная к регистру строка, но действительно отличается, если это - двоичная строка:

mysql> SELECT HEX(WEIGHT_STRING('AaBb' COLLATE
        latin1_swedish_ci));+------------------------------------------------------+| HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci)) |+------------------------------------------------------+| 41414242                                             |+------------------------------------------------------+mysql> SELECT HEX(WEIGHT_STRING(BINARY 'AaBb'));+-----------------------------------+| HEX(WEIGHT_STRING(BINARY 'AaBb')) |+-----------------------------------+| 41614262                          |+-----------------------------------+

MySQL поддерживает несколько реализаций сопоставления, как обсуждено в Разделе 10.4.1, "Типы Реализации Сопоставления". Некоторые из них могут быть добавлены к MySQL без перекомпиляции:

Следующие разделы описывают, как добавить сопоставления первых двух типов к существующим наборам символов. У всех существующих наборов символов уже есть двоичное сопоставление, таким образом нет никакой потребности здесь, чтобы описать, как добавить тот.

Сводка процедуры для того, чтобы добавить новое сопоставление:

  1. Выберите ID сопоставления.

  2. Добавьте конфигурационную информацию, которая называет сопоставление и описывает упорядочивающие символ правила.

  3. Перезапустите сервер.

  4. Проверьте, что сопоставление присутствует.

Инструкции здесь покрывают только сопоставления, которые могут быть добавлены, не перекомпилировав MySQL. Чтобы добавить сопоставление, которое действительно требует перекомпиляции (как реализовано посредством функций в исходном файле C), используйте инструкции в Разделе 10.3, "Добавляя Набор символов". Однако, вместо того, чтобы добавить всю информацию, запрошенную для полного набора символов, только измените соответствующие файлы для существующего набора символов. Таким образом, основанный на том, что уже присутствует для текущих сопоставлений набора символов, добавьте структуры данных, функции, и конфигурационную информацию для нового сопоставления.

Отметить

Если Вы изменяете существующее сопоставление, которое может влиять на упорядочивание строк для, индексирует на столбцах, которые используют сопоставление. В этом случае восстановите любой такой, индексирует, чтобы избежать проблем, таких как неправильные результаты запроса. Для дополнительной информации см. Раздел 2.11.3, "Проверяя Или Таблицы, или Индексирует, Должен быть Восстановлен".

Дополнительные Ресурсы