Команда MySQL ALTER очень полезна, когда вы хотите изменить имя своей таблицы, любое поле таблицы или хотите добавить или удалить существующий столбец в таблице.

Начнем с создания таблицы testalter_tbl .

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> create table testalter_tbl
   -> (
   -> i INT,
   -> c CHAR(1)
   -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field |  Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
|   i   | int(11) | YES  |     |   NULL  |       |
|   c   | char(1) | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Удаление, добавление или изменение позиции столбца

Если вы хотите удалить существующий столбец i из приведенной выше таблицы MySQL, то вы будете использовать предложение DROP вместе с командой ALTER, как показано ниже:

mysql> ALTER TABLE testalter_tbl  DROP i;

Предложение DROP не будет работать, если столбец остается единственным в таблице.

Чтобы добавить столбец, используйте ADD и укажите определение столбца.Следующий оператор возвращает столбец i в testalter_tbl —

mysql> ALTER TABLE testalter_tbl ADD i INT;

После выдачи этого утверждения testalter будет содержать те же самые два столбца, которые он имел, когда вы впервые создали таблицу, но не будет иметь одинаковую структуру. Это связано с тем, что по умолчанию добавляются новые столбцы, которые добавляются в конец таблицы.

mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field |  Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
|   c   | char(1) | YES  |     |   NULL  |       |
|   i   | int(11) | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)