Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП СУБД Ч.2.doc
Скачиваний:
12
Добавлен:
11.06.2015
Размер:
545.79 Кб
Скачать

Alter table "Клиент(кп)"

DROP ("Имя") CASCADE CONSTRAINTS

Этот вариант команды позволяет удалить поле вместе со всеми наложенными на него ограничениями.

9. Изменение имени ограничения

ALTER TABLE "Клиент(кп)"

RENAME CONSTRAINT "Клиент(кп)_ТТ_С" TO

"Клиент(кп)_ТТ_Сheck"

(предполагается, что ограничение "Клиент(кп)_ТТ_С" уже создано).

10. Отключение ограничения

ALTER TABLE "Клиент(кп)"

MODIFY CONSTRAINT "Клиент(кп)_ТТ_Сheck"

DISABLE

Указанное ограничения остается в схеме базы данных, но его условие более не проверяется при модификации данных. Отключенные ораничения можно вновь включить, используя опцию modify … enable; при этом будет предварительно выполнена проверка всех записей.

11. Удаление ограничения

ALTER TABLE "Клиент(кп)"

DROP CONSTRAINT "Клиент(кп)_ТТ_Сheck"

2.7. Удаление таблиц

Для удаления SQL-таблиц используется команда DROP TABLE, например:

DROP TABLE "Клиент(кп)"

При удалении таблицы происходят следующие действия:

  1. удаляются все строки таблицы;

  2. из системного каталога удаляется определение таблицы;

  3. Удаляются все связанные с этой таблицей объекты, а именно: ограничения, индексы и триггеры.

Кроме того, из системного словаря удаляются все настройки прав доступа пользователей на удаленную таблицу.

Таким образом, удаление таблицы при помощи команды DROP TABLE является в значительной степени радикальной мерой, к которой следует прибегать, принимая во внимание ее последствия.

Таблица по умолчанию не может быть удалена, если ее поля использованы в существующих ограничениях FOREIGN KEY других таблиц. Для игнорирования данного правила следует использовать следующий вариант команды:

DROP TABLE "Клиент(кп)" CASCADE CONSTRAINTS

Интересным вопросом является, что же происходит с данными после удаления таблицы. В ранних версиях Oracle удаление таблицы было необратимым действием; единственным способом восстановления данных было восстановление базы данных с резервных копий. В современной системе поддерживается понятие корзины, в которую помещаются удаленные объекты базы данных и из которой эти объекты можно при необходимости восстановить.

Рассмотрим следующую последовательность команд, иллюстрирующих работу с корзиной:

CREATE TABLE ToDrop

( aaa NUMBER UNIQUE,

bbb CHAR(20) );

- создание некоторой таблицы

DROP TABLE ToDrop

- удаление таблицы

SELECT OBJECT_NAME, ORIGINAL_NAME, OPERATION,

TYPE, CAN_UNDROP

FROM RECYCLEBIN

- просмотр содержимого корзины, информация о которой содержится в специальной таблице RECYCLEBIN, после команды удаления:

OBJECT_NAME

ORIGINAL_NAME

OPERATION

TYPE

CAN_UNDROP

BIN$RNddS4U3QZWepxPrpwXy6Q==$0

SYS_C0010464

DROP

INDEX

NO

BIN$D/N6f2YwS8G6sNmhbzTucg==$0

TODROP

DROP

TABLE

YES

В корзине находятся два объекта – сама таблица и индекс, созданный для поля aaa, на которое наложено ограничение уникальности; таблицу можно восстановить.

FLASHBACK TABLE ToDrop TO BEFORE DROP

- восстановаление таблицы из корзины, однако индекс востановлен не будет. Теперь корзина пуста, а таблица восстановлена и может использоваться в запросах; индекс же необходимо создать заново.

Если необходимо удалить таблицу без помещения ее предварительно в корзину, следует использовать следующий вариант:

DROP TABLE ToDrop PURGE

Для очистки корзины можно вопользоваться командой PURGE RECYCLEBIN.

Команда FLASHBACK TABLE может использоваться и для восстновления таблицы к состоянию в некотрый момент времени. Однако восстновление объектов из корзины возможно не всегда; это связано с подробностями настройки сервера. Для более детального и полного описания работы с корзиной следует обращаться к документации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]