DROP TABLE
Содержание раздела
Запрос позволяет удалить логическую таблицу и ее данные.
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Для удаления данных логической таблицы только из некоторых СУБД хранилища можно указать ключевое слово DATASOURCE_TYPE
(см. секцию Ключевое слово DATASOURCE_TYPE).
Удаленные данные невозможно восстановить средствами системы.
Если при обработке запроса происходит ошибка, последующее изменение сущностей логической базы данных невозможно. В этом случае нужно повторить запрос. Действие перезапустит обработку запроса, и после ее завершения можно будет продолжить работу с логической БД.
Каждое удаление таблицы записывается в журнал. Журнал можно посмотреть с помощью запроса GET_CHANGES.
Синтаксис
DROP TABLE [IF EXISTS] [db_name.]table_name
[DATASOURCE_TYPE = datasource_alias]
[LOGICAL_ONLY]
Параметры:
db_name
— имя логической базы данных, из которой удаляется логическая таблица. Опционально, если выбрана логическая БД, используемая по умолчанию;table_name
— имя удаляемой логической таблицы;datasource_alias
— псевдоним СУБД хранилища, из которой удаляются данные логической таблицы. Возможные значения:adb
,adqm
,adg
,adp
. Значение можно указывать без кавычек, в одинарных кавычках (например,'adb'
) или двойных кавычках (например,"adb"
). Если ключевое словоDATASOURCE_TYPE
с псевдонимом не указано, данные удаляются из всех СУБД хранилища.
Ключевое слово IF EXISTS
Ключевое слово IF EXISTS
включает проверку наличия логической таблицы до попытки ее удаления. Если ключевое слово указано в запросе, система возвращает успешный ответ как по успешно удаленной, так и несуществующей таблице; иначе — только по успешно удаленной таблице.
Ключевое слово DATASOURCE_TYPE
Ключевое слово DATASOURCE_TYPE
позволяет указать СУБД хранилища, из которых необходимо удалить данные логической таблицы. Сама логическая таблица удаляется из логической схемы данных при удалении данных таблицы из последней СУБД хранилища.
Если ключевое слово не указано, данные таблицы удаляются из всех СУБД хранилища.
Ключевое слово LOGICAL_ONLY
Ключевое слово LOGICAL_ONLY
позволяет удалить логическую таблицу только на логическом уровне (из логической схемы данных), без удаления связанных физических таблиц и размещенных в них данных из хранилища данных.
Если ключевое слово не указано, удаляется как логическая, так и связанные с ней физические таблицы.
Ограничения
- Выполнение запроса недоступно при наличии любого из факторов:
- горячей дельты,
- незавершенного запроса на создание, удаление или изменение таблицы или представления,
- запрета на изменение сущностей (см. раздел DENY_CHANGES).
- Выполнение запроса недоступно в сервисной базе данных
INFORMATION_SCHEMA
.
Примеры
Удаление таблицы с удалением данных из всех СУБД
DROP TABLE marketing.sales
Удаление таблицы и ее данных с проверкой наличия таблицы
DROP TABLE IF EXISTS marketing.sales_unknown_existence
Удаление таблицы с удалением данных из ADB и ADG
-- удаление таблицы из ADB
DROP TABLE marketing.stores DATASOURCE_TYPE = adb;
-- удаление таблицы из ADG
DROP TABLE marketing.stores DATASOURCE_TYPE = adg;
Удаление таблицы только на логическом уровне
DROP TABLE marketing.sales1 LOGICAL_ONLY