MySQL переупорядочивает порядок столбцов с помощью phpmyadmin - PullRequest
42 голосов
/ 02 июня 2011

Любая помощь по переупорядочению столбцов в MySQL с использованием phpMyAdmin?Это называется кардинальностью?Я создал таблицы, но мне нужно изменить порядок столбцов из-за сценария экспорта, который у меня есть.Это экспорт на основе договоренностей.Например, я хочу, чтобы столбцы:

Apple | Cherry | Banana

были изменены на:

Apple | Banana | Cherry

Ответы [ 5 ]

48 голосов
/ 22 июля 2013

phpMyAdmin наконец-то включил эту функцию в самую последнюю версию (4.0 и выше).

Перейдите в представление «Структура» для таблицы, нажмите кнопку «Изменить» в соответствующем поле, а затем в разделе «Переместить столбец» выберите место, куда вы хотите, чтобы поле было перемещено.

42 голосов
/ 03 июня 2011

Используйте команду ALTER TABLE с командой MODIFY COLUMN. Что-то вроде:

ALTER TABLE foo MODIFY COLUMN Hobby VARCHAR(20) FIRST;

Я не знаю, есть ли GUI-способ сделать это в phpmyadmin, но нормальные SQL-запросы тоже должны работать.

22 голосов
/ 25 сентября 2015

постоянно меняющийся ответ!

Больше нет кнопки «Изменить», но теперь есть кнопка «Переместить столбцы».

Работает нормально.(IE нажмите на вкладку «Структура» и нажмите «Переместить столбцы» и вуаля!)

enter image description here

22 голосов
/ 02 июня 2011

Чтобы изменить порядок столбцов, откройте окно запроса и используйте оператор:

ALTER TABLE ... MODIFY COLUMN ... FIRST|AFTER ...

К сожалению, вам придется заново ввести все определение столбца.См. http://dev.mysql.com/doc/refman/5.1/en/alter-table.html Пример:

ALTER TABLE t MODIFY COLUMN cherry VARCHAR(255) NULL AFTER banana;

Может варьироваться в зависимости от вашей версии MySQL, но этот синтаксис работает с версии 3.23.

6 голосов
/ 03 июня 2011

К сожалению, вам придется (1) открыть окно запроса и (2) переопределить атрибуты каждого столбца, который вы переставляете.Например:

ALTER TABLE test.`new table`
  MODIFY COLUMN cherry unsigned int(10) NOT NULL AUTOINCREMENT PRIMARY KEY 
  AFTER banana

Макет таблицы до изменения:

`apple`  varchar(45) NOT NULL,
`cherry` int(10) unsigned NOT NULL AUTO_INCREMENT,
`banana` varchar(45) NOT NULL

Макет таблицы после изменения:

`apple`  varchar(45) NOT NULL,
`banana` varchar(45) NOT NULL,
`cherry` int(10) unsigned NOT NULL AUTO_INCREMENT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...