Spec-Zone.ru › MySQL 5.7

13.1.29 Заявление DROP TABLE

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

DROP TABLE удаляет одну или несколько таблиц. У вас должен быть DROP для каждой таблицы.

Будьте осторожны с этим заявлением! Для каждой таблицы оно удаляет определение таблицы и все данные таблицы. Если таблица является разветвлённой, заявление удаляет определение таблицы, все её разделы, все данные, хранящиеся в этих разделах, и все определения разделов, связанные с удалённой таблицей.

Удаление таблицы также удаляет любые триггеры для таблицы.

DROP TABLE вызывает неявную фиксацию, за исключением использования ключевого слова TEMPORARY. См. Раздел 13.3.3, «Заявления, вызывающие неявную фиксацию».

Важно

Когда таблица удаляется, права, предоставленные конкретно для этой таблицы, не автоматически удаляются. Их необходимо удалить вручную. См. Раздел 13.7.1.4, «Заявление GRANT».

Если какие-либо таблицы, перечисленные в списке аргументов, не существуют, поведение DROP TABLE зависит от того, указано ли ключевое слово IF EXISTS:

  • Без IF EXISTS заявление удаляет все существующие указанные таблицы и возвращает ошибку, указывающую, какие несуществующие таблицы не удалось удалить.

  • С IF EXISTS ошибка для несуществующих таблиц не возникает. Заявление удаляет все существующие указанные таблицы и генерирует диагностическое сообщение NOTE для каждой несуществующей таблицы. Эти сообщения могут быть отображены с помощью SHOW WARNINGS. См. Раздел 13.7.5.40, «Заявление SHOW WARNINGS».

IF EXISTS также может быть полезно для удаления таблиц в необычных ситуациях, в которых существует файл .frm, но нет таблицы, управляемой движком хранилища. (Например, если происходит аномальный выход сервера после удаления таблицы из движка хранилища, но до удаления файла .frm.)

Ключевое слово TEMPORARY имеет следующие эффекты:

  • Заявление удаляет только TEMPORARY таблицы.

  • Заявление не вызывает неявную фиксацию.

  • Права доступа не проверяются. TEMPORARY таблица видна только сессии, которая её создала, поэтому проверка не требуется.

Включение ключевого слова TEMPORARY — хороший способ предотвратить случайное удаление таблиц, не являющихся TEMPORARY.

Ключевые слова RESTRICT и CASCADE ничего не делают. Они разрешены для упрощения переноса из других систем баз данных.

DROP TABLE не поддерживается со всеми настройками innodb_force_recovery. См. Раздел 14.22.2, «Вынуждение восстановления InnoDB».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/drop-table.html

Spec-Zone.ru

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