Добавление столбца

Добавление столбца

Один или более столбцов можно добавить в таблицу в одном операторе при использовании предложения ADD. Каждое предложение ADD включает полное определение столбца. Используется тот же самый синтаксис, что и при определении столбца в операторе CREATE TABLE. Предложения ADD отделяются друг от друга запятыми.

Синтаксис:

ALTER TABLE таблица ADD <определение-столбца>

<определение-столбца> = столбец

{<тип данных> | [COMPUTED [BY] (<выражение>) | домен}

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

[NOT NULL] [<ограничение-столбца>]

[COLLATE порядок-сортировки]

<ограничение-столбца> = [CONSTRAINT ограничение]

<определение -ограничения> [< ограничение-столбца>]

< определение -ограничения>=

PRIMARY KEY

| UNIQUE

| CHECK (<условие-поиска>)

| REFERENCES другая-таблица [(другой-столбец [,другой-столбец...])]

[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

[ON UPDATE {NO ACTION|CASCADE | SET DEFAULT | SET NULL}]

Следующий оператор добавляет столбец EMP_NO в таблицу EMPLOYEE С использованием домена EMPNO:

ALTER TABLE EMPLOYEE ADD EMP_NO EMPNO NOT NULL;

Пример

Здесь мы добавляем два столбца EMAIL_ID и LEAVE_STATUS в таблицу EMPLOYEE:

ALTER TABLE EMPLOYEE

ADD EMAIL_ID VARCHAR(10) NOT NULL,

ADD LEAVE_STATUS DEFAULT 10 INTEGER NOT NULL;

Включение ограничений целостности

Ограничения целостности могут быть включены в столбцы, которые вы добавляете в таблицу. Например, ограничение UNIQUE может быть включено в столбец EMAIL_ID в предыдущем примере:

ALTER TABLE EMPLOYEE

ADD EMAIL_ID VARCHAR(10) NOT NULL,

ADD LEAVE_STATUS DEFAULT 10 INTEGER NOT NULL,

ADD CONSTRAINT UQ_EMAIL_ID UNIQUE(EMAIL_ID);

или

ALTER TABLE EMPLOYEE

ADD EMAIL_ID VARCHAR(IO) NOT NOLL UNIQUE,

ADD LEAVE_STATUS DEFAULT 10 INTEGER NOT NULL;

Добавление новых ограничений таблицы

Предложение ADD CONSTRAINT может быть использовано для добавления ограничений на уровне таблицы для нового или существующего столбца.

Синтаксис:

ALTER TABLE имя ADD [CONSTRAINT ограничение] <ограничение-таблицы>;

где ограничение-таблицы- может быть ограничением PRIMARY KEY, FOREIGN KEY, UNIQUE или CHECK. Фраза CONSTRAINT ограничение может быть опущена, если вам не нужно имя ограничения.

Пример

Для добавления ограничения UNIQUE в таблицу EMPLOYEE вы можете использовать следующий оператор:

ALTER TABLE EMPLOYEE

ADD CONSTRAINT UQ_PHONE_EXT UNIQUE(PHONE_EXT);