ALTER DOMAIN
Изменение текущих характеристик домена или его переименование.
DSQL, ESQL.
ALTER DOMAIN domain_name [TO new_name] [TYPE <datatype>] [{SET DEFAULT {<literal> | NULL | <context_var>}} | DROP DEFAULT] [{SET | DROP} NOT NULL] [{ADD [CONSTRAINT] CHECK (<dom_condition>)} | DROP CONSTRAINT] <datatype> ::= <scalar_datatype> | <blob_datatype> | <array_datatype> <scalar_datatype> ::= См. Синтаксис скалярных типов данных <blob_datatype> ::= См. Синтаксис типа данных BLOB <array_datatype> ::= См. Синтаксис массивов <dom_condition> ::= <val> <operator> <val> | <val> [NOT] BETWEEN <val> AND <val> | <val> [NOT] IN (<val> [, <val> ...] | <select_list>) | <val> IS [NOT] NULL | <val> IS [NOT] DISTINCT <val> | <val> IS [NOT] {TRUE | FALSE | UNKNOWN} | <val> [NOT] CONTAINING <val> | <val> [NOT] STARTING [WITH] <val> | <val> [NOT] LIKE <val> [ESCAPE <val>] | <val> [NOT] SIMILAR TO <val> [ESCAPE <val>] | <val> <operator> {ALL | SOME | ANY} (<select_list>) | [NOT] EXISTS (<select_expr>) | [NOT] SINGULAR (<select_expr>) | (<dom_condition>) | NOT <dom_condition> | <dom_condition> OR <dom_condition> | <dom_condition> AND <dom_condition> <operator> ::= <> | != | ^= | ~= | = | < | > | <= | >= | !< | ^< | ~< | !> | ^> | ~> <val> ::= VALUE | <literal> | <context_var> | <expression> | NULL | NEXT VALUE FOR genname | GEN_ID(genname, <val>) | CAST(<val> AS <cast_type>) | (<select_one>) | func(<val> [, <val> ...]) <cast_type> ::= <datatype> | [TYPE OF] domain | TYPE OF COLUMN rel.col
Параметр | Описание |
---|---|
domain_name |
Имя домена. |
new_name |
Новое имя домена.Может содержать до 63 символов. |
datatype |
Тип данных SQL. |
literal |
Литерал. |
context_var |
Любая контекстная переменная, тип которой совместим с типом данных домена. |
dom_condition |
Условие домена. |
collation |
Порядок сортировки. |
select_one |
Оператор |
select_list |
Оператор |
select_expr |
Оператор |
expression |
Выражение. |
genname |
Имя последовательности (генератора). |
func |
Скалярная функция. |
Оператор ALTER DOMAIN
изменяет текущие характеристики домена, в том числе и его имя.В одном операторе ALTER DOMAIN
можно выполнить любое количество изменений домена.
TO name
-
Предложение TO позволяет переименовать домен.Имя домена можно изменить, если не существует зависимостей от этого домена, т.е.столбцов таблиц, локальных переменных и аргументов процедур, ссылающихся на данный домен.
SET DEFAULT
-
Предложение
SET DEFAULT
позволяет установить новое значение по умолчанию.Если домен уже содержал значение по умолчанию, то установка нового значения по умолчанию не требует предварительного удаления старого. DROP DEFAULT
-
Предложение
DROP DEFAULT
удаляет ранее установленное для домена значение по умолчанию.В этом случае значением по умолчанию становится значение NULL. ADD CONSTRAINT CHECK
-
Предложение
ADD [CONSTRAINT] CHECK
добавляет условие ограничения домена.Если домен уже содержал ограничениеCHECK
, то его предварительно необходимо удалить с помощью предложенияDROP CONSTRAINT
. TYPE
-
Предложение
TYPE
позволяет изменить тип домена на другой допустимый тип.Не допустимы любые изменения типа, которые могут привести к потере данных.Например, количество символов в новом типе для домена не может быть меньше, чем было установлено ранее.NoteИзменение типа не поддерживается для типа BLOB и массивов.
SET NOT NULL
-
Предложение
SET NOT NULL
устанавливает ограничение NOT NULL для домена.В этом случае для переменных и столбцах базирующихся на домене значение NULL не допускается.NoteУспешная установка ограничения NOT NULL для домена происходит только после полной проверки данных таблиц, столбцы которых базируются на домене.Это может занять довольно длительное время.
WarningПри изменении описания домена, существующий PSQL код, может стать некорректным.Информация о том, как это обнаружить, находится в приложении Поле RDB$VALID_BLR.
DROP NOT NULL
-
Предложение
DROP NOT NULL
удаляет ограничениеNOT NULL
для домена.