Delphi 3 и создание приложений баз данных

Изменение определения домена


Оператор

ALTER DOMAIN имя {

[SET DEFAULT {литерал] NULL | USER}]

| [DROP DEFAULT] | [ADD [CONSTRAINT] CHECK (<огранич_домена>)] | [DROP CONSTRAINT]

};

позволяет изменить параметры домена, определенного ранее оператором CREATE DOMAIN. Однако нельзя изменить тип данных и определение NOT NULL. Следует помнить, что все сделанные изменения будут учтены для всех столбцов, определенных с использованием данного домена (в том случае, если параметры домена не были переопределены при определении столбцов таблицы или впоследствии).

SET DEFAULТ устанавливает значения по умолчанию, подобно тому, как это делается в операторе CREATE DOMAIN.

• DROP DEFAULТ отменяет текущие значения по умолчанию, назначенные домену.

• [ADD [CONSTRAINT] CHECK (<огранич_домена>)] добавляет условия, которым должны соответствовать значения столбца, ассоциированного с доменом. При этом возможно определение условий, рассмотренных выше для предложения CHECK оператора CREATE DOMAIN.

• DROP CONSTRAINT удаляет условия, определенные для домена в предложении CHECK оператора CREATE DOMAIN или предыдущих операторов ALTER DOMAIN.

Например, пусть определен домен ID_TYPE

CREATE DOMAIN ID_TYPE AS INTEGER CHECK(VALUE >= 100);

и в дальнейшем он использован при создании таблицы ААА:

CREATE TABLE ААА( 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);

Заметим, что изменять определение таблицы ААА нет необходимости, и отныне в столбец ID этой таблицы можно занести значения, большие или равные 100 и меньшие или равные 500.



Содержание раздела