15.1.35 Заявление 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.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.