Удаление столбцов

Удаление столбцов

Владелец таблицы может использовать ALTER TABLE для удаления определения столбца и его данных из таблицы. Удаление столбца приводит к потере всех хранимых в нем данных. Удаление приводит к немедленному эффекту, независимо от других транзакций, работающих с таблицей. В этом случае другая транзакция продолжается без прерывания, a Firebird откладывает удаление до освобождения таблицы.

До удаления столбца учтите условия, при которых невозможно будет выполнить удаление. Удаление будет ошибочным, если столбец:

* является частью ограничения UNIQUE, PRIMARY KEY или FOREIGN KEY;

* включен в ограничение CHECK (это могут быть ограничения CHECK на уровне таблицы для основанного на домене столбца в дополнение к ограничению его домена);

* используется в просмотре, триггере или хранимой процедуре.

Зависимости должны быть удалены до удаления столбца. Столбцы, включенные в состав ограничений PRIMARY KEY и UNIQUE, не могут быть удалены, если на них есть ссылки в ограничениях FOREIGN KEY. В этом случае удалите ограничение FOREIGN KEY до удаления ограничения PRIMARY KEY или UNIQUE. После этого удаляйте столбец.

Синтаксис:

ALTER TABLE имя-таблицы DROP имя-столбца [, имя-столбца ...];

Например, следующий оператор удаляет столбец JOB_GRADE из таблицы EMPLOYEE:

ALTER TABLE EMPLOYEE DROP JOB_GRADE;

Удаление нескольких столбцов в одном операторе:

ALTER TABLE EMPLOYEE

DROP JOB_GRADE,

DROP FULL NAME;