Введение в стандарты языка баз данных SQL



Оператор изменения схемы таблицы - часть 2


<drop column definition> ::= DROP [ COLUMN ] <column name> <drop behavior> <drop behavior> ::= CASCADE | RESTRICT

Пояснения:

  • Если в определении удаления столбца указано RESTRICT, то на удаляемый столбец не должно быть ссылок в выражении запроса любого существующего представления и в условии поиска любого существующего ограничения, кроме табличных ограничений, ссылающихся только на этот столбец и входящих в описание данной таблицы.
  • Если в определении удаления столбца указано CASCADE, то любой зависимый объект уничтожается при выполнении неявного оператора REVOKE (см. ниже).
  • Пусть A обозначает текущий идентификатор авторизации. Пусть T - имя таблицы, для которой выполняется оператор ALTERTABLE, а C - имя удаляемого столбца. Тогда при удалении столбца неявно выполняется следующий оператор от имени текущего системного идентификатора авторизации: REVOKEINSERT(CN), UPDATE(CN), REFERENCES(CN) ONTABLETN FROMACASCADE.
  • Пусть V - имя любого представления, ссылающегося на столбец C таблицы T. При удалении столбца неявно выполняется следующий оператор от имени текущего системного идентификатора авторизации: DROPVIEWVNCASCADE.
  • Идентифицируемый столбец и его описатель уничтожаются.
  • Степень T уменьшается на единицу. Порядковые номера всех столбцов с порядковым номером больше чем у C уменьшаются на единицу.
  • Определение добавления табличного ограничения имеет следующий синтаксис:

    <add table constraint definition> ::= ADD <table constraint definition>

    Это определение не нуждается в пояснениях.

    Определение уничтожения табличного ограничения имеет следующий синтаксис:

    <drop table constraint definition> ::= DROP CONSTRAINT <constraint name> <drop behavior>

    Пояснения:

  • Пусть T имя таблицы, упоминаемой в операторе ALTERTABLE, а TC - имя уничтожаемого ограничения целостности.
  • Если TC является ограничением уникальности и существует ссылочное ограничение RC со ссылкой на таблицу T по столбцам уникальности TC, то будем говорить, что RC зависит от TC.
  • Если указано RESTRICT, то никакое табличное ограничение не должно зависеть от TC.
  • Если указано CASCADE, то все зависимые объекты уничтожаются при выполнении неявного оператора ALTERTABLE (см. ниже).
  • Пусть TCN2 - имя любого табличного ограничения, зависящего от TC, и пусть T2 - имя таблицы, определение которой включало TCN2. Тогда выполняется неявный оператор ALTERTABLET2 DROPCONSTRAINTTCN2 CASCADE.
  • Описатель TC удаляется из описания таблицы T.
  • Идентифицированное табличное ограничение и его описатель разрушаются.



  • Содержание  Назад  Вперед