Детали для конкретного типа
- Массивы
-
-
Если домен должен быть массивом, базовым типом может быть любой тип данных SQL, кроме BLOB и массива.
-
Размеры массива указаны в квадратных скобках.(В синтаксисе эти скобки заключены в кавычки, чтобы отличать их от квадратных скобок, обозначающих необязательные элементы синтаксиса).
-
Для каждого измерения массива указывается одно или два целых числа, которые определяют нижнюю и верхнюю границы диапазона индекса:
-
По умолчанию массивы начинаются с 1.Нижняя граница является неявной, и необходимо указать только верхнюю границу.Когда указано только одно число меньше 1, то это определяет диапазон num .. 1, а число больше 1 определяет диапазон 1 .. num.
-
Когда указано два числа, разделенных двоеточием (‘
:
’) и необязательный пробел, то если второе большее, чем первое, это явно определяет диапазон индексов.Одна или обе границы могут быть меньше нуля, если верхняя граница больше нижней.
-
-
Если массив имеет несколько измерений, определения диапазонов для каждого измерения должны быть разделены запятыми и необязательными пробелами.
-
Индексы проверяются только, если значение массива действительно существует.
-
Это означает, что сообщения об ошибках относительно недопустимых индексов не будут возвращаться, если выбор конкретного элемента массива ничего не вернет или если поле массива имеет значение
NULL
.
-
- Строковые типы
-
Для типов
CHAR
,VARCHAR
иBLOB
с подтипом text можно указать набор символов в предложенииCHARACTER SET
.Если набор символов не указан, то по умолчанию принимается тот набор символов, который был указан при создании базы данных.WarningЕсли же при создании базы данных не был указан набор символов, то при создании домена по умолчанию принимается набор символов NONE.В этом случае данные хранятся и извлекаются, так как они были поданы.В столбец, основанный на таком домене, можно загружать данные в любой кодировке, но невозможно загрузить эти данные в столбец с другой кодировкой.Транслитерация не выполняется между исходными и конечными кодировками, что может приводить к ошибкам.
- Предложение
DEFAULT
-
Необязательное предложение
DEFAULT
позволяет указать значение по умолчанию для домена.Это значение будет помещено в столбец таблицы, который ссылает на данный домен, при выполнении оператораINSERT
, если значение не будет указано для этого столбца.Локальные переменные и аргументы PSQL модулей, которые ссылаются на этот домен, будут инициализированы значением по умолчанию.В качестве значения по умолчанию может быть литерал совместимый по типу, неизвестное значение NULL и контекстная переменная, тип которой совместим с типом домена. - Ограничение
NOT NULL
-
Предложение
NOT NULL
запрещает столбцам и переменным, основанным на домене, присваивать значение NULL. - Ограничение
CHECK
-
Необязательное предложение
CHECK
задаёт ограничение домена.Ограничение домена задаёт условия, которому должны удовлетворять значения столбцов таблицы или переменных, которые ссылаются на данный домен.Условие должно быть помещено в круглые скобки.Условие — это логическое выражение, называемое также предикат, которое может возвращать значения TRUE (истина), FALSE (ложь) и UNKNOWN (неизвестно). Условие считается выполненным, если предикат возвращает значение TRUE или UNKNOWN (эквивалент NULL). Если предикат возвращает FALSE, то значение не будет принято. - Ключевое слово
VALUE
-
Ключевое слово
VALUE
в ограничении домена является заменителем столбца таблицы, который основан на данном домене, или переменной PSQL модуля.Оно содержит значение, присваиваемое переменной или столбцу таблицы.Ключевое слово VALUE может быть использовано в любом месте ограниченияCHECK
, но обычно его используют в левой части условия. COLLATE
-
Необязательное предложение
COLLATE
позволяет задать порядок сортировки, если домен основан на одном из строковых типов данных (за исключениемBLOB
). Если порядок сортировки не указан, то по умолчанию принимается порядок сортировки умалчиваемый для указанного набора сортировки при создании домена.