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