Оператор ALTER TABLE используется для изменения структуры таблицы. Преобразования, осуществляемые с помощью этого оператора, представлены в табл. 6.
Таблица 6. Преобразования таблицы с помощью оператора ALTER TABLE
Синтаксис
Описание
ADD [COLUMN] column_description [FIRST | AFTER column]
Добавить новый столбец в указанное место
ADD INDEX [index] (column, ...)
Добавить индекс в указанный столбец (столбцы) таблицы
ADD PRIMARY KEY (column,…)
Сделать указанный столбец (столбцы) первичным ключом таблицы
ALTER [COLUMN] column {SET
DEFAULT value | DROP DEFAULT}
Добавить или удалить значение по умолчанию определенного столбца
CHANGE [COLUMN] column
new_column_description
Изменить столбец с именем column так, чтобы он получил указанное описание. Это можно использовать для изменения имени столбца, поскольку column_description включает в себя имя
MODIFY [COLUMN]
column_description
Похоже на CHANGE. Используется для изменения типов столбцов, но не имен
DROP [COLUMN] column
Удалить указанный столбец
DROP PRIMARY KEY
Удалить первичный индекс
(не столбец!)
DROP INDEX index
Удалить указанный индекс
RENAME table tbl to new_tbl
Переименовать таблицу
Допустим, вы решили добавить отсканированные фотографии водителей в базу, чтобы легче было печатать пропуска или другие документы. Ссылки на файлы с фотографиями можно поместить в новый столбец, добавив его в таблицу командой alter table:
mysql> ALTER TABLE drivers ADD COLUMN photo CHAR(50);
В данном примере столбец добавляется в конец таблицы, но можно было бы добавить ключевое слово FIRST, тогда столбец стал бы первым, а можно указать after birth, поместив его тем самым после указанного столбца.
Допустим, вы обнаружили, что поле для указания адреса оказалось мало для вводимых данных: последние символы обрезаются, т. к. адрес длиннее 150 выделенных для него символов. Изменим определение столбца:
mysql> ALTER TABLE drivers MODIFY address CHAR(200);