Spec-Zone.ru › MySQL 9.2

15.1.35 Заявление DROP TABLESPACE

DROP [UNDO] TABLESPACE tablespace_name

Это утверждение удаляет табличное пространство, которое было ранее создано с помощью CREATE TABLESPACE. Оно поддерживается NDB и InnoDB механизмами хранения.

Ключевое слово UNDO необходимо для удаления пространства таблиц отката. Только пространства таблиц отката, созданные с помощью CREATE UNDO TABLESPACE синтаксиса, могут быть удалены. Пространство таблиц отката должно находиться в состоянии empty, прежде чем оно может быть удалено. Дополнительную информацию см. в Разделе 17.6.3.4, «Пространства таблиц отката».

tablespace_name — это чувствительный к регистру идентификатор в MySQL.

Для общего пространства таблиц InnoDB все таблицы должны быть удалены из пространства таблиц перед операцией DROP TABLESPACE. Если пространство таблиц не пусто, DROP TABLESPACE возвращает ошибку.

Пространство таблиц NDB, подлежащее удалению, не должно содержать файлов данных; другими словами, прежде чем вы сможете удалить пространство таблиц NDB, вы должны сначала удалить каждый из его файлов данных с помощью ALTER TABLESPACE ... DROP DATAFILE.

Примечания

  • Общее пространство таблиц InnoDB не удаляется автоматически при удалении последней таблицы в пространстве таблиц. Пространство таблиц должно быть удалено явно с помощью DROP TABLESPACE tablespace_name.

  • Операция DROP DATABASE может удалить таблицы, принадлежащие общему пространству таблиц, но она не может удалить само пространство таблиц, даже если операция удаляет все таблицы, принадлежащие этому пространству. Пространство таблиц должно быть удалено явно с помощью DROP TABLESPACE tablespace_name.

  • Аналогично системному пространству таблиц, усечение или удаление таблиц, хранящихся в общем пространстве таблиц, создаёт свободные внутренние ресурсы в общем пространстве таблиц, которые могут быть использованы только для новых данных InnoDB. Место не возвращается операционной системе, как это происходит для пространств таблиц с файлами на столбец.

Примеры InnoDB

Этот пример демонстрирует, как удалить общее пространство таблиц InnoDB. Общее пространство таблиц ts1 создается с одной таблицей. Перед удалением пространства таблиц таблица должна быть удалена.

mysql> CREATE TABLESPACE `ts1` ADD DATAFILE 'ts1.ibd' Engine=InnoDB;

mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY) TABLESPACE ts1 Engine=InnoDB;

mysql> DROP TABLE t1;

mysql> DROP TABLESPACE ts1;

Этот пример демонстрирует удаление пространства таблиц отката. Пространство таблиц отката должно находиться в состоянии empty, прежде чем оно может быть удалено. Дополнительную информацию см. в Разделе 17.6.3.4, «Пространства таблиц отката».

mysql> DROP UNDO TABLESPACE undo_003;

Пример NDB

Этот пример показывает, как удалить пространство таблиц NDB myts, имеющее файл данных, названный mydata-1.dat, после первоначального создания пространства таблиц и предполагает существование группы файлов журнала, названной mylg (см. Раздел 15.1.17, «Заявление CREATE LOGFILE GROUP»).

mysql> CREATE TABLESPACE myts
    ->     ADD DATAFILE 'mydata-1.dat'
    ->     USE LOGFILE GROUP mylg
    ->     ENGINE=NDB;

Вы должны удалить все файлы данных из пространства таблиц с помощью ALTER TABLESPACE, как показано здесь, прежде чем оно может быть удалено:

mysql> ALTER TABLESPACE myts
    ->     DROP DATAFILE 'mydata-1.dat';

mysql> DROP TABLESPACE myts;

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

Spec-Zone.ru

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