Spec-Zone.ru › MySQL 8.4

15.1.33 Заявление 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.16, «Управление группами файлов журнала»).

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-8.4-en/drop-tablespace.html

Spec-Zone.ru

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