Вернутся на главную

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


Удаление таблиц на нашем сайте

Статьи
Статьи для студентов
Статьи для учеников
Научные статьи
Образовательные статьи Статьи для учителей
Домашние задания
Домашние задания для школьников
Домашние задания с решениями Задания с решениями
Задания для студентов
Методички
Методические пособия
Методички для студентов
Методички для преподавателей
Новые учебные работы
Учебные работы
Доклады
Студенческие доклады
Научные доклады
Школьные доклады
Рефераты
Рефератывные работы
Школьные рефераты
Доклады учителей
Учебные документы
Разные образовательные материалы Разные научные материалы
Разные познавательные материалы
Шпаргалки
Шпаргалки для студентов
Шпаргалки для учеников
Другое

Для удаления 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 может использоваться и для восстновления таблицы к состоянию в некотрый момент времени. Однако восстновление объектов из корзины возможно не всегда; это связано с подробностями настройки сервера. Для более детального и полного описания работы с корзиной следует обращаться к документации.





Название статьи Удаление таблиц