Добавление столбца
Добавление столбца
Один или более столбцов можно добавить в таблицу в одном операторе при использовании предложения 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);