MySQL упорядочивает существующие столбцы таблицы

Как изменить положение определенного существующего столбца в таблице MySQL?

Пример: я хочу переместить имя пользователя столбца из его текущей позиции, вместо этого, чтобы после столбцов, или я хочу его, перед каким-либо определенным столбцом в моей таблице.

Ответ 1

Вы можете изменить порядок столбцов, если хотите.

Если ваш столбец имени пользователя varchar (255), то:

alter table `mytable` 
change column username username varchar(255) after `somecolumn`;

Если это помогает лучше читать определение таблицы, то почему?

Ответ 2

Спасибо, ребята, за весь ваш ответ, я уже поступил с ним.

ALTER TABLE tbl_user MODIFY gender char(1) AFTER username;

Хорошо, просто как организовать свой стол? вы не хотите, чтобы ваше основное ключевое поле находилось в последнем порядке вашей таблицы, по крайней мере, я знаю, как его сконфигурировать, если когда-либо сталкиваюсь с этой проблемой, я пытаюсь привыкнуть к базе данных на основе текста и не использовать gui для Теперь.

Еще раз спасибо ребятам:)

Ответ 3

Просто используйте этот запрос

alter table `admin` modify id int(11) first;

или

alter table `admin` modify id int(11) after `some_column`;

Ответ 4

Ваш SQL должен выглядеть следующим образом:

ALTER TABLE `Customers` MODIFY `UserName` INT (11) AFTER `Orders`

Готово! Одна строка меняет положение и больше ничего не остается.


Советуйте @rahim-asgari рекомендацию ALTER TABLE MYTABLE ADD MYFILED INT( 5 ) NOT NULL AFTER POSITION, так как вы будете:

  • Добавить новое поле
  • Скопировать старые данные поля в новое поле
  • Изменить любые ограничения/индексы
  • Удалить старое поле

Синтаксис:

ALTER TABLE `TableName` MODIFY `FieldToBeMoved` [SAME FIELD SETTINGS] [ACTION] `TargetPosition`
  • [SAME FIELD SETTINGS]
    Относится к конфигурации вашего поля. TINYINT, VARCHAR, TEXT и т.д. Не забудьте указать размер. Ej. varchar (255)

  • [ACTION]
    Вы можете переместить поле BEFORE или AFTER определенное поле.
    Замените соответственно на BEFORE или AFTER.


Пример

Если ваш...

  • Имя таблицы: Customers
  • Поле для перемещения: UserName
  • UserName: int(11)
  • Целевая позиция (последнее поле таблицы): Orders

Ответ 5

ALTER TABLE [tbl_name] MODIFY|CHANGE [column definition] [AFTER|BEFORE] [a_column] оба будут работать. MODIFY будет предпочтительнее, если вы хотите изменить порядок столбцов, но не переименовывать. Кроме того, вы НЕ МОЖЕТ объединить несколько переупорядочений столбцов в одном выражении ALTER TABLE. И.Е. для смещения целочисленных столбцов col1, col2, col3 порядка порядка col3, col2, col1, вам нужно будет сделать

ALTER TABLE tbl_name MODIFY col3 int FIRST; ALTER TABLE tbl_name MODIFY col2 int AFTER col3;

Ответ 6

вы не можете изменить порядок существующих столбцов.

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

ALTER TABLE `MYTABLE` ADD `MYFILED` INT( 5 ) NOT NULL AFTER `POSITION` 

или

чтобы добавить поле в начале таблицы

ALTER TABLE `MYTABLE` ADD `MYFIELD` INT( 5 ) NOT NULL FIRST