В настоящее время у меня есть следующая таблица MySQL: Employees (empID, empName, department);
Я хочу изменить таблицу на следующее: Employees (empID, department, empName);
Как это можно сделать с помощью ALTER
утверждений?
Примечание: я хочу изменить только позиции столбцов.
SELECT *
выражении. (Конечно, если важен порядок значений, следует явно перечислить их в операторе, но, возможно, OP здесь не имеет полного контроля.)SELECT
высказыванийAFTER column
можно использовать и сALTER TABLE ADD column
. (в следующий раз вы добавите несколько полей.)Ответы:
Если empName является столбцом VARCHAR (50):
РЕДАКТИРОВАТЬ
По комментариям вы также можете сделать это:
Обратите внимание, что повторение
empName
является преднамеренным. Вы должны сообщить MySQL, что хотите сохранить то же имя столбца.Вы должны знать, что обе версии синтаксиса являются специфическими для MySQL. Они не будут работать, например, в PostgreSQL или многих других СУБД.
Другое редактирование: Как отметил @Luis Rossi в комментарии, вам нужно полностью указать определение измененного столбца непосредственно перед
AFTER
модификатором. Приведенные выше примеры просто естьVARCHAR(50)
, но если вам нужны другие характеристики (например,NOT NULL
или значение по умолчанию), вы должны включить их. Обратитесь к документацииALTER TABLE
для получения дополнительной информации.источник
COLUMN
ключевое слово является необязательным вALTER TABLE
утверждениях. Я предпочитаю использовать это, потому что я думаю, что это делает заявление более читабельным.NOT NULL DEFAULT 1
, это делается сразу после типа столбца в примереVARCHAR(50)
Изменить положение столбца:
Если вам нужно переместить его на первую позицию, вы должны использовать термин FIRST в конце запроса ALTER TABLE CHANGE [COLUMN]:
источник
phpMyAdmin предоставляет графический интерфейс для этого в представлении структуры таблицы. Установите флажок, чтобы выбрать столбец, который вы хотите переместить, и щелкните действие изменения в нижней части списка столбцов. Затем вы можете изменить все свойства столбца, и вы найдете функцию «Переместить столбец» в правой части экрана.
Конечно, это всего лишь построение запросов с очень хорошим верхним ответом, но поклонники графического интерфейса могут оценить альтернативу.
моя версия phpMyAdmin 4.1.7
источник
Мне пришлось запустить это для столбца, представленного на более поздних этапах продукта, на 10+ таблиц. Поэтому написал этот быстрый неопрятный скрипт для генерации команды alter для всех «соответствующих» таблиц.
источник