×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.57. CREATE COLLATION

6.1.57. CREATE COLLATION

CREATE COLLATION — создание новой правила сортировки

Синтаксис

CREATE COLLATION [ IF NOT EXISTS ] name (
    [ LOCALE = locale, ]
    [ LC_COLLATE = lc_collate, ]
    [ LC_CTYPE = lc_ctype, ]
    [ PROVIDER = provider, ]
    [ DETERMINISTIC = boolean, ]
    [ RULES = rules, ]
    [ VERSION = version ]
)
CREATE COLLATION [ IF NOT EXISTS ] name FROM existing_collation

Описание

Команда CREATE COLLATION определяет новое правило сортировки, используя указанные настройки локали операционной системы или копируя существующее правило сортировки.

Чтобы иметь возможность создать правило сортировки, вы должны иметь привилегию CREATE в целевой схеме.

Параметры

IF NOT EXISTS

Не выдавать ошибку, если правило сортировки с таким именем уже существует. В этом случае выдаётся уведомление. Обратите внимание, что нет гарантии, что существующее правило сортировки хоть как-то похоже на то, которое было бы создано.

name

Имя правила сортировки. Имя правила сортировки может быть квалифицировано схемой. Если нет, правило сортировки определяется в текущей схеме. Имя правила сортировки должно быть уникальным в пределах этой схемы. (Системные каталоги могут содержать правила сортировки с одинаковыми именами для других кодировок, но они игнорируются, если кодировка базы данных не совпадает.)

locale

Имя локали для этого правила сортировки. Подробности см. в разделах Раздел 3.8.2.2.3.1 и Раздел 3.8.2.2.3.2.

Если providerlibc, это быстрый способ одновременно задать LC_COLLATE и LC_CTYPE. Если вы указываете locale, вы не можете указывать ни один из этих параметров.

Если providerbuiltin, то locale должен быть указан и установлен либо в C, либо в C.UTF-8.

lc_collate

Если providerlibc, использует указанную локаль операционной системы для категории локали LC_COLLATE.

lc_ctype

Если providerlibc, использует указанную локаль операционной системы для категории локали LC_CTYPE.

provider

Указывает поставщика услуг локали, связанных с этим правилом сортировки. Возможные значения: builtin, icu (если сервер собран с поддержкой ICU) или libc. По умолчанию используется libc. Подробности см. в разделе Раздел 3.8.1.4.

DETERMINISTIC

Указывает, должно ли правило сортировки использовать детерминированные сравнения. По умолчанию — true. Детерминированное сравнение считает строки, которые не равны побайтово, различными, даже если сравнение считает их логически равными. Digital Q.DataBase разрешает такие ситуации, используя побайтовое сравнение. Сравнение, не являющееся детерминированным, может сделать правило сортировки, например, нечувствительным к регистру или акцентам. Для этого необходимо выбрать подходящую настройку LOCALE и установить здесь для правила сортировки значение «не детерминированное».

Недетерминированные правила сортировки поддерживаются только поставщиком ICU.

rules

Задаёт дополнительные правила сортировки для настройки поведения правила сортировки. Поддерживается только для ICU. Подробности см. в разделе Раздел 3.8.2.3.4.

version

Задаёт строку версии для хранения вместе с правилом сортировки. Обычно её следует опускать, что приведёт к вычислению версии на основе фактической версии правила сортировки, предоставляемой операционной системой. Этот параметр предназначен для использования утилитой pg_upgrade для копирования версии из существующей установки.

См. также ALTER COLLATION о том, как обрабатывать несоответствия версий правил сортировки.

existing_collation

Имя существующего правила сортировки для копирования. Новое правило сортировки будет иметь те же свойства, что и существующее, но будет независимым объектом.

Примечания

Команда CREATE COLLATION устанавливает блокировку SHARE ROW EXCLUSIVE (которая конфликтует сама с собой) на системный каталог pg_collation, поэтому одновременно может выполняться только одна команда CREATE COLLATION.

Используйте команду DROP COLLATION для удаления пользовательских правил сортировки.

Дополнительные сведения о создании правил сортировки см. в разделе Раздел 3.8.2.2.3.

При использовании поставщика правил сортировки libc локаль должна быть применима к текущей кодировке базы данных. Точные правила см. в CREATE DATABASE.

Примеры

Чтобы создать правило сортировки из локали операционной системы fr_FR.utf8 (при условии, что текущая кодировка базы данных — UTF8):

CREATE COLLATION french (locale = 'fr_FR.utf8');

Чтобы создать правило сортировки с использованием поставщика ICU и порядка сортировки немецкого телефонного справочника:

CREATE COLLATION german_phonebook (provider = icu, locale = 'de-u-co-phonebk');

Чтобы создать правило сортировки с использованием поставщика ICU на основе корневой локали ICU с пользовательскими правилами:

CREATE COLLATION custom (provider = icu, locale = 'und', rules = '&V << w <<< W');

Дополнительные сведения и примеры синтаксиса правил см. в разделе Раздел 3.8.2.3.4.

Чтобы создать правило сортировки на основе существующего правила сортировки:

CREATE COLLATION german FROM "de_DE";

Это может быть удобно для использования в приложениях имён правил сортировки, не зависящих от операционной системы.

Совместимость

В стандарте SQL есть оператор CREATE COLLATION, но он ограничен копированием существующего правила сортировки. Синтаксис для создания нового правила сортировки является расширением Digital Q.DataBase.

Смотрите также

ALTER COLLATION, DROP COLLATION
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению