Изменение определения домена
Оператор ALTER DOMAIN, имеющий следующий формат
ALTER DOMAIN имя
{ [SET DEFAULT {литерал | NULL | USER}] |
[DROP DEFAULT] |
[ADD [CONSTRAINT] CHECK (<ограничен_домена>)]
[DROP CONSTRAINT] };
позволяет изменит параметры домена, определенного ранее оператором CREATE DOMAIN. Однако нельзя изменить тип данных и определение NOT NULL. Следует помнить, что все сделанные изменения будут учтены для всех столбцов, определенных с использованием данного домена (в том случае, если параметры домена не были переопределены при создании столбцов таблицы или впоследствии).
– SET DEFAULT устанавливает значения по умолчанию подобно тому, как это делается в операторе CREATE DOMAIN.
– DROP DEFAULT отменяет текущие значения по умолчанию.
– [ADD [CONSTRAINT] CHECK (<ограничен_домена>)] добавляет условия, которым должны соответствовать значения столбца, ассоциированного с доменом. При этом возможно определение условий, рассмотренных выше для предложения CHECK оператора CREATE DOMAIN.
– DROP CONSTRAINT – удаляет условия, определенные для домена в предложении CHECK оператора CREATE DOMAIN или предыдущих операторов ALTER DOMAIN.
Например, пусть определен домен ID_TYPE:
CREATE DOMAIN ID_TYPE AS INTEGER
CHECK(VALUE >= 100);
и в дальнейшем использован при создании таблицы AAA:
CREATE TABLE AAA
( ID ID_TYPE NOT NULL,
FIO VARCHAR(20),
Primary KEY(ID) );
Изменить условие CHECK так, чтобы значение было больше или равно 100 и меньше или равно 500, можно за два шага:
– сначала нужно удалить старое условие
ALTER DOMAIN ID_TYPE
DROP CONSTRAINT;
– затем добавить новое (которое есть модифицированное старое)
ALTER DOMAIN ID_TYPE
CHECK(VALUE >= 100 AND VALUE <= 500);
Заметим, что изменять определение таблицы AAA нет необходимости, и отныне столбец ID этой таблицы можно занести значения, большие или равные 100 и меньшие или равные 500.
Дата добавления: 2015-02-03; просмотров: 924;