Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Справочник по языку MySQL /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Определение данных: CREATE, DROP, ALTER - Программирование от RIN.RU
Определение данных: CREATE, DROP, ALTER



Синтаксис оператора 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  Обсудить в чате

8  В тему

Структура языка

Типы данных столбцов

Функции, используемые в операторах SELECT и WHERE (часть 1)

Функции, используемые в операторах SELECT и WHERE (часть 2)

Обработка данных: SELECT, INSERT, UPDATE, DELETE

Основные команды пользовательских программ MySQL

Команды управления транзакциями и блокировками в MySQL

Полнотекстовый поиск в MySQL

Кэш запросов в MySQL

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь