DROP TABLE
Содержание раздела
Поддерживается в версиях: 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