15.1.33 Заявление DROP TABLESPACE
DROP [UNDO] TABLESPACE tablespace_name
Это утверждение удаляет табличное пространство, которое было ранее создано с помощью CREATE TABLESPACE. Оно поддерживается хранилищами NDB и InnoDB.
Ключевое слово UNDO должно быть указано для удаления пространства таблиц отката. Только пространства таблиц отката, созданные с помощью CREATE UNDO
TABLESPACE синтаксиса, могут быть удалены. Пространство таблиц отката должно находиться в состоянии empty перед его удалением. Более подробную информацию см. в Разделе 17.6.3.4, «Пространства таблиц отката».
— это чувствительный к регистру идентификатор в MySQL. tablespace_name
Для общего табличного пространства 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.