Средства уничтожения элементов схемы базы данных
Для каждого из упомянутых в этом разделе операторов создания элементов схемы базы данных имеются обратные операторы уничтожения этих элементов.
Созданная ранее таблица может быть уничтожена следующим оператором:
<drop table statement> ::= DROP TABLE <table name> <drop behavior>
Пояснения:
Пусть уничтожается таблица с именем T. T должна быть базовой таблицей. T не должна быть временной объявляемой таблицей. Если специфицировано RESTRICT, то ни в каком существующем представлении и ни в каком условии поиска существующего ограничения не должны содержаться ссылки на T. Пусть A обозначает текущий идентификатор авторизации. Тогда при выполнении оператора уничтожения таблицы неявно выполняется следующий оператор: REVOKEALLPRIVILEGESONTFROMACASCADE, что при наличии спецификации CASCADE в операторе уничтожения таблицы приводит к уничтожению всех объектов, в определении которых использовалась ссылка на T. Таблица T и ее дескриптор уничтожаются.
Созданное ранее представление может быть уничтожено с помощью следующего оператора:
<drop view statement> ::= DROP VIEW <table name> <drop behavior>
Пояснения:
Пусть V - имя уничтожаемого представления. V должно быть именем представляемой таблицы. Если специфицировано RESTRICT, то ни в одном существующем представлении или условии поиска существующего ограничения не должна содержаться ссылка на V. Пусть A обозначает текущий идентификатор авторизации. При выполнении оператора уничтожения представления неявно выполняется следующий оператор: REVOKEALLPRIVILEGESONTFROMACASCADE, что при наличии спецификации CASCADE в операторе уничтожения представления приводит к уничтожению всех объектов, в определении которых использовалась ссылка на V.
Оператор уничтожения домена имеет следующий синтаксис:
<drop domain statement> ::= DROP DOMAIN <domain name> <drop behavior>
Пояснения:
Пусть D - имя уничтожаемого домена. Если специфицировано RESTRICT, то ссылки на D должны отсутствовать в любом описателе столбца, в выражении запроса любого представления и в условии поиска любого ограничения. Пусть C обозначает описатель столбца, определенного на домене D; T - имя таблицы, описатель которой включает C. C модифицируется следующим образом:
(a) из C удаляется ссылка на D, и в C включается копия описателя типа данных D;
(b) если C не включает раздела значения по умолчанию, а описатель D включает такой раздел, то в C включается раздел умолчания D;
(c) для каждого описателя ограничения домена D выполняются следующие действия:
(i) пусть TCD обозначает табличное ограничение с определяемым в реализации именем, которое порождено из проверочного ограничения домена путем замены VALUE на имя столбца C с сохранением атрибутов ограничения;
(ii) если для идентификатора полномочий текущей SQL-сессии имеются необходимые привилегии, выполняется неявный оператор ALTERTABLETADDTCD;
Пусть A - текущий идентификатор полномочий. Выполняется следующий неявный оператор REVOKE: REVOKEUSAGEONDOMAINDNFROMACASCADE Описатель домена разрушается.
Утверждение целостности уничтожается с помощью следующего оператора:
<drop assertion statement> ::= DROP ASSERTION <constraint name>
Пояснение:
При выполнении оператора описатель идентифицируемого утверждения целостности разрушается.
Содержание раздела