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

Задача
Вы хотите избавиться от столбца таблицы, добавить новый столбец или переместить столбец внутри таблицы.

Решение
Используйте инструкции DROP и ADD предложения ALTER TABLE для удаления и добавления столбца. Для перемещения столбца следует удалить его и повторно вставить туда, куда нужно.

Обсуждение
Чтобы удалить столбец из таблицы, укажите инструкцию DROP, затем имя столбца. Удалим из mytbl столбец i, оставив в таблице только столбец c:

ALTER TABLE mytbl DROP i;


DROP не работает, если вы пытаетесь удалить единственный оставшийся столбец таблицы. (Чтобы проверить утверждение, попробуйте удалить столбец c после того, как столбец i уже удален.)

Для добавления столбца в таблицу используйте инструкцию ADD и укажите определение столбца. Следующее предложение восстанавливает столбец i в таблице mytbl:

ALTER TABLE mytbl ADD i INT;


Теперь mytbl снова содержит те же два столбца, что и при первом создании таблицы, но ее структура изменилась. Дело в том, что новые столбцы по умолчанию добавляются в конец таблицы. Так что столбец i, который был первым, теперь превратится в последний:

mysql> SHOW COLUMNS FROM mytbl;


+-----+---------+-----+-----+---------+--------+
| Field | Type | Null | Key | Default | Extra |
+-----+---------+-----+-----+----------+-------+
| c | char(1) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-----+---------+-----+-----+----------+-------+

Если вы хотите поместить столбец в определенную позицию в таблице, используйте спецификатор FIRST, чтобы сделать его первым столбцом, или AFTER имя_столбца, чтобы разместить его после столбца с именем имя_столбца. Опробуйте приведенные ниже предложения ALTER TABLE, используя после каждого из них предложение SHOW COLUMNS, чтобы посмотреть на то, что произошло:

ALTER TABLE mytbl DROP i;
ALTER TABLE mytbl ADD i INT FIRST;
ALTER TABLE mytbl DROP i;
ALTER TABLE mytbl ADD i INT AFTER c;


Спецификаторы FIRST и AFTER работают только с инструкцией ADD. То есть если вы хотите изменить положение существующего столбца, вам придется сначала удалить его (посредством DROP), а затем добавить в новое место.
Теги:
ALTER TABLE
Добавлено: 23 Июля 2018 12:56:52 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...