Синтаксис оператора RENAME TABLE
RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
Операция переименования должна осуществляться как атомарная, т.е. при выполнении переименования никакому другому потоку не разрешается доступ к указанным таблицам. Благодаря этому возможно замещение таблицы пустой таблицей:
CREATE TABLE new_table (...); RENAME TABLE old_table TO backup_table, new_table TO old_table;
Переименование производится слева направо. Таким образом, для обмена именами между двумя таблицами необходимо выполнить следующие действия:
RENAME TABLE old_table TO backup_table, new_table TO old_table, backup_table TO new_table;
Для двух баз данных, находящихся на одном и том же диске, можно также осуществлять обмен именами:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
При выполнении команды RENAME не должны иметь место заблокированные таблицы или активные транзакции. Необходимо также иметь привилегии ALTER и DROP для исходной таблицы и привилегии CREATE и INSERT - для новой.
Если MySQL сталкивается с какой-либо ошибкой при переименовании нескольких таблиц, то произойдет обратное переименование для всех переименованных таблиц, чтобы вернуть все в исходное состояние.
Оператор RENAME TABLE был добавлен в MySQL 3.23.23.
Синтаксис оператора DROP TABLE
DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...] [RESTRICT | CASCADE]
Оператор DROP TABLE удаляет одну или несколько таблиц. Все табличные данные и определения удаляются, так что будьте внимательны при работе с этой командой!
В версии MySQL 3.22 и более поздних можно использовать ключевые слова IF EXISTS , чтобы предупредить ошибку, если указанные таблицы не существуют.
Опции RESTRICT и CASCADE позволяют упростить перенос программы. В данный момент они не задействованы.
Примечание: DROP TABLE автоматически принимает текущую активную транзакцию.
Синтаксис оператора CREATE INDEX
CREATE [UNIQUE|FULLTEXT] INDEX index_name ON tbl_name (col_name[(length)],... )
Команда CREATE INDEX в версиях MySQL до 3.22 не выполняет никаких действий. В версии 3.22 и более поздних CREATE INDEX соответствует команде ALTER TABLE в части создания индексов. См. раздел Синтаксис оператора ALTER TABLE .
Обычно все индексы создаются в таблице во время создания самой таблицы командой CREATE TABLE . См. раздел Синтаксис оператора CREATE TABLE . CREATE INDEX дает возможность добавить индексы к существующим таблицам.
Список столбцов в форме (col1,col2,...) создает индекс для нескольких столбцов. Величины индексов формируются путем конкатенации величин указанных столбцов.
Для столбцов типов CHAR и VARCHAR с помощью параметра col_name(length) могут создаваться индексы, для которых используется только часть столбца (для столбцов BLOB и TEXT нужно указывать длину). Команда, приведенная ниже, создает индекс, используя первые 10 символов столбца name:
mysql> CREATE INDEX part_of_name ON customer (name(10));
Поскольку большинство имен обычно имеют отличия друг от друга в первых 10 символах, данный индекс не должен быть намного медленнее, чем созданный из столбца name целиком. Кроме того, используя неполные столбцы для индексов, можно сделать файл индексов намного меньше, а это позволяет сэкономить место на диске и к тому же повысить скорость операций INSERT !
Следует учитывать, что в версии MySQL 3.23.2 и более поздних для таблиц типа MyISAM можно добавлять индекс только для столбцов, которые могут принимать величины NULL или для столбцов BLOB/TEXT .
Чтобы получить более подробную информацию о том, как MySQL использует индексы, см. раздел Использование индексов в MySQL.
С помощью опции FULLTEXT можно индексировать только столбцы VARCHAR и TEXT и только в таблицах MyISAM . Эта возможность доступна только в версии MySQL 3.23.23 и выше. См. раздел Полнотекстовый поиск в MySQL.
Синтаксис оператора DROP INDEX
DROP INDEX index_name ON tbl_name
Оператор DROP INDEX удаляет индексы, указанные в index_name из таблицы tbl_name . DROP INDEX не выполняет никаких действий в версиях MySQL до 3.22. В версиях 3.22 и более поздних DROP INDEX соответствует команде ALTER TABLE в части удаления индексов. См. раздел Синтаксис оператора ALTER TABLE .
1 2 3 4
8 8 8
|