DROP TABLE
Содержание раздела
Поддерживается в версиях: 6.2 / 6.1.1 / 6.0 / 5.8 / 5.7 / 5.6.1 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.
Запрос позволяет удалить логическую таблицу и ее данные.
Удаленные данные невозможно восстановить средствами системы.
Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь. В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Чтобы удалить данные логической таблицы только из определенного датасорса, укажите в запросе ключевое слово DATASOURCE_TYPE.
Ошибка выполнения корректного запроса блокирует последующие запросы в этой логической базе данных. В случае блокировки устраните причины сбоя и повторите сбойную операцию. Если повторение операции невозможно, удалите сбойную операцию запросом 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