Базы данных. Пономарев А.А. - 86 стр.

UptoLike

Составители: 

Синтаксис оператора ALTER TABLE
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER
column_name]
или ADD [COLUMN] (create_definition, create_definition,...)
или ADD INDEX [index_name] (index_col_name,...)
или ADD PRIMARY KEY (index_col_name,...)
или ADD UNIQUE [index_name] (index_col_name,...)
или ADD FULLTEXT [index_name] (index_col_name,...)
или ADD [CONSTRAINT symbol] FOREIGN KEY index_name
(index_col_name,...)
[reference_definition]
или ALTER [COLUMN] col_name {SET DEFAULT literal | DROP
DEFAULT}
или CHANGE [COLUMN] old_col_name create_definition
[FIRST | AFTER column_name]
или MODIFY [COLUMN] create_definition [FIRST | AFTER
column_name]
или DROP [COLUMN] col_name
или DROP PRIMARY KEY
или DROP INDEX index_name
или DISABLE KEYS
или ENABLE KEYS
или RENAME [TO] new_tbl_name
или ORDER BY col
или table_options
Оператор ALTER TABLE обеспечивает возможность изменять
структуру существующей таблицы. Например, можно добавлять или удалять
столбцы, создавать или уничтожать индексы или переименовывать столбцы
либо саму таблицу. Можно также изменять комментарий для таблицы и ее
тип.
Оператор ALTER TABLE во время работы создает временную копию
исходной таблицы. Требуемое изменение выполняется на копии, затем
исходная таблица удаляется, а новая переименовывается. Так делается для
того, чтобы в новую таблицу автоматически попадали все обновления, кроме
неудавшихся. Во время выполнения ALTER TABLE исходная таблица
доступна для чтения другими клиентами. Операции обновления и записи в
этой таблице приостанавливаются, пока не будет готова новая таблица.
Следует отметить, что при использовании любой другой опции для
ALTER TABLE, кроме RENAME, MySQL всегда будет создавать временную
таблицу, даже если данные, строго говоря, и не нуждаются в копировании
(например, при изменении имени столбца). Для таблиц MyISAM можно
увеличить скорость воссоздания индексной части (что является наиболее
медленной частью в процессе восстановления таблицы) путем установки
переменной myisam_sort_buffer_size достаточно большого значения.
86