Оператор 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 phone_number BIGINT;
В данном примере столбец добавляется в конец таблицы, но можно было бы добавить ключевое слово first, тогда столбец стал бы первым, а можно указать after birth, поместив его тем самым после указанного столбца birth.
Допустим, вы обнаружили, что в поле для указания адреса вводимые данные не помещаются, т. к. адрес длиннее 150 выделенных для него символов. Изменим определение столбца:
mysql> ALTER TABLE drivers MODIFY address char(200);