Команда 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)