15.1.34 Заявление DROP TABLE
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]
DROP TABLE удаляет одну или несколько таблиц. Для каждой таблицы необходимо иметь DROP разрешение.
Будьте внимательны при использовании этого заявления! Для каждой таблицы оно удаляет определение таблицы и все данные таблицы. Если таблица является разбиением, заявление удаляет определение таблицы, все её разделы, все данные, хранящиеся в этих разделах, и все определения разделов, связанные с удаляемой таблицей.
Удаление таблицы также удаляет любые триггеры для этой таблицы.
DROP TABLE вызывает неявную фиксацию, за исключением случаев использования ключевого слова TEMPORARY. См. Раздел 15.3.3, «Заявления, вызывающие неявную фиксацию».
Когда таблица удаляется, разрешения, предоставленные конкретно для этой таблицы, не автоматически удаляются. Их необходимо удалить вручную. См. Раздел 15.7.1.6, «Заявление GRANT».
Если какие-либо таблицы, указанные в списке аргументов, не существуют, поведение DROP TABLE зависит от того, указано ли ключевое слово IF EXISTS:
Без
IF EXISTSзаявление завершается с ошибкой, указывающей, какие несуществующие таблицы не удалось удалить, и изменения не производятся.С ключевым словом
IF EXISTSошибка для несуществующих таблиц не возникает. Заявление удаляет все существующие указанные таблицы и генерирует диагностическое сообщениеNOTEдля каждой несуществующей таблицы. Эти сообщения можно отобразить с помощьюSHOW WARNINGS. См. Раздел 15.7.7.42, «Заявление SHOW WARNINGS».
IF EXISTS также может быть полезным для удаления таблиц в необычных обстоятельствах, когда в словаре данных имеется запись, но нет таблицы, управляемой движком хранилища. (Например, если аномальное завершение работы сервера происходит после удаления таблицы из движка хранилища, но до удаления записи из словаря данных.)
Ключевое слово TEMPORARY имеет следующие эффекты:
Заявление удаляет только
TEMPORARYтаблицы.Заявление не вызывает неявную фиксацию.
Права доступа не проверяются. Таблица
TEMPORARYвидна только сессии, которая её создала, поэтому проверка не требуется.
Включение ключевого слова TEMPORARY — хороший способ предотвратить случайное удаление не-TEMPORARY таблиц.
Ключевые слова RESTRICT и CASCADE ничего не делают. Они разрешены для упрощения переноса из других систем баз данных.
DROP TABLE не поддерживается со всеми настройками innodb_force_recovery. См. Раздел 17.20.3, «Принудительное восстановление InnoDB».
© 2025 Oracle
Licensed under the GPLv2 License.