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

Функция

Определение оператора удаления таблицы.

Спецификация
   
< удаление таблицы >::=
Синтаксические правила
  1. < Имя таблицы > должно задавать базовую таблицу.

  2. При удалении таблицы, созданной в текущей схеме, допускается не указывать < имя схемы >.

    DROP TABLE Auto;
    DROP TABLE System.Auto;
Общие правила
  1. Удалить таблицу может только ее владелец. Администратор БД имеет возможность удалить одновременно все объекты некоторого пользователя с помощью команды DROP USER < имя пользователя > CASCADE.

  2. Удалить можно только незаблокированную таблицу (т.е. такую таблицу, с которой в данный момент не работают другие пользователи).

  3. При запуске СУБД ЛИНТЕР с ключом /COMPATIBILITY=STANDARD запрещается обычное удаление таблицы, на которую ссылаются представления (VIEW). При этом на консоль ядра СУБД и в файл linter.out выдаётся список объектов, ссылающихся на удаляемый объект и не позволяющих его удалить. Пример списка:

    INFO Can't delete relation '"SYSTEM"."TEST1" (#187)' because exists reference(s):
      "SYSTEM"."TESTV" (#188)
      "SYSTEM"."TESTV2" (#190)

  4. Каскадное удаление таблицы, на которую ссылаются представления (VIEW), разрешено всегда.

  5. Если на удаляемую таблицу наложено ограничение целостности ON DELETE CASCADE, то удаление таблицы возможно только после предварительного удаления всех ссылающихся на нее таблиц. Если задан модификатор CASCADE, ссылки на таблицу удаляются автоматически.

  6. Удаление системных таблиц запрещено.

  7. Если создана таблица с именем, совпадающим с именем системной таблицы, но с другой структурой, то ее можно удалить.

    create user S identified by '12345678';
    grant DBA to S;
    create table $$$SYSRL (I int);
    insert into $$$SYSRL values (100);
    drop table $$$SYSRL;
  8. При удалении таблицы связанные с нею хранимые события не удаляются.

  9. Для удаления хранимых событий при удалении таблицы необходимо в команде удаления таблицы указать опцию cascade:

    drop table < имя таблицы > cascade;
  10. Одновременно с удалением таблицы, для которой создано правило репликации, удаляется и само правило.

  11. При каскадном удалении таблицы удаляется и связанное с ней глобальное (хранимое) событие.