Spec-Zone.ru › MySQL 8.4

15.1.32 Оператор 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/drop-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API