DROP TABLE

Содержание раздела
  1. Синтаксис
    1. Ключевое слово IF EXISTS
    2. Ключевое слово DATASOURCE_TYPE
    3. Ключевое слово LOGICAL_ONLY
  2. Ограничения
  3. Примеры
    1. Удаление таблицы с удалением данных из всех датасорсов
    2. Удаление таблицы и ее данных с проверкой наличия таблицы
    3. Удаление таблицы и ее данных из двух датасорсов
    4. Удаление таблицы только на логическом уровне

Поддерживается в версиях:  6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7 / 5.6 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.

Запрос позволяет удалить логическую таблицу и ее данные.

Удаленные данные невозможно восстановить средствами системы.

Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь. В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Если в запросе указано ключевое слово DATASOURCE_TYPE, данные логической таблицы удаляются из указанных датасорсов; иначе — из всех датасорсов. При наличии retention-правил для логической таблицы данные также удаляются из связанных датасорсов, которые служат хранилищем холодных данных.

При удалении данных логической таблицы из последнего датасорса система также удаляет таблицу из логической схемы данных.

При ошибке выполнения корректного запроса все последующие запросы в логической БД блокируются. В этом случае следует устранить причины сбоя и повторить сбойную операцию. Если повторение операции невозможно, удалите сбойную операцию запросом ERASE_CHANGE_OPERATION и вручную устраните несоответствия на физическом уровне (если такие есть).

Каждое удаление таблицы записывается в журнал. Журнал можно посмотреть с помощью запроса GET_CHANGES.

Синтаксис

DROP TABLE [IF EXISTS] [db_name.]table_name
[DATASOURCE_TYPE = datasource_alias]
[LOGICAL_ONLY]

Параметры:

db_name

Имя логической базы данных, из которой удаляется логическая таблица. Опционально, если выбрана логическая БД, используемая по умолчанию.

table_name

Имя удаляемой логической таблицы.

datasource_alias

Имя датасорса, из которого удаляются данные таблицы.
Указывается в одинарных кавычках (например, 'adg'). Варианты, которые остаются доступными, но могут быть удалены в будущем: значение без кавычек (например, adg) или в двойных кавычках (например, "adg").

Ключевое слово IF EXISTS

Ключевое слово IF EXISTS включает проверку наличия логической таблицы до попытки удаления. Если ключевое слово указано в запросе, успешный ответ возвращается при отсутствии или успешном удалении логической таблицы, иначе — только при успешном удалении логической таблицы.

Ключевое слово DATASOURCE_TYPE

Ключевое слово DATASOURCE_TYPE задает датасорс, из которого удаляются данные логической таблицы. При удалении данных таблицы из последнего датасорса система также удаляет саму логическую таблицу из логической схемы данных. См. также параметр datasource_alias.

Если ключевое слово не указано, данные таблицы удаляются из всех датасорсов, в которых эти данные размещены.

Ключевое слово LOGICAL_ONLY

Ключевое слово LOGICAL_ONLY позволяет удалить логическую таблицу только на логическом уровне (из логической схемы данных), без удаления связанных физических таблиц и размещенных в них данных из хранилища данных.

Если ключевое слово не указано, удаляется как логическая, так и связанные с ней физические таблицы.

Ограничения

Примеры

Удаление таблицы с удалением данных из всех датасорсов

DROP TABLE marketing.sales

Удаление таблицы и ее данных с проверкой наличия таблицы

DROP TABLE IF EXISTS marketing.sales_unknown_existence

Удаление таблицы и ее данных из двух датасорсов

-- удаление таблицы из датасорса adb
DROP TABLE marketing.stores DATASOURCE_TYPE = 'adb';

-- удаление таблицы из датасорса adg
DROP TABLE marketing.stores DATASOURCE_TYPE = 'adg';

Удаление таблицы только на логическом уровне

DROP TABLE marketing.sales1 LOGICAL_ONLY