Создание структуры БД и манипулирование данными в СУБД MySQL. Пономарев А.А. - 69 стр.

UptoLike

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

Если возникает ошибка при копировании данных в таблицу, то они будут автомати-
чески удалены. Чтобы обеспечить возможность использовать для восстановления таблиц
журнал обновлений/двоичный журнал, в MySQL во время выполнения команды CREATE
TABLE ... SELECT не разрешены параллельные вставки.
Синтаксис оператора 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 DE-
FAULT}
или 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 достаточно большого значения.
Для использования оператора ALTER TABLE необходимы привилегии ALTER,
INSERT и CREATE для данной таблицы.
69