Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Как поменять местами поля (MySQL)

Поменять два поля местами можно при помощи операторов ALTER TABLE и CHANGE COLUMN.

Пример

Есть таблица `changes`, в которой нужно поменять местами 2 поля: `name` и `date`.

Создаем таблицу

1
2
3
4
5
6
7
CREATE  TABLE IF NOT EXISTS `carstock`.`changes` (
  `id` INT NOT NULL ,
  `name` VARCHAR(45) NOT NULL ,
  `date` DATE NOT NULL ,
  `count` SMALLINT UNSIGNED NOT NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB

Добавим запись

1INSERT INTO `changes` (`name`, `date`, `count`) VALUES ('My name is', '2011-11-15', '10');

SELECT

Если выполнить стандартный селект (SELECT * FROM `changes`), то получим в результате:

1
2
3
4
5
6
mysql> select * from `changes`;
+----+------------+------------+-------+
| id | name       | date       | count |
+----+------------+------------+-------+
|  1 | My Name is | 2011-11-15 |    10 |
+----+------------+------------+-------+

Меняем `name` и `date`

Поменять поля местами можно двумя запросами.

1ALTER TABLE `carstock`.`changes` CHANGE COLUMN `date` `date` DATE NOT NULL AFTER `id`;

или

1ALTER TABLE `carstock`.`changes` CHANGE COLUMN `name` `name` VARCHAR(45) NOT NULL AFTER `date`;

Лично мне по душе второй вариант, он лучше воспринимается, все-таки в нем фигурируют оба поля, которые меняем местами.

SELECT

Еще раз выполняем стандартный селект (SELECT * FROM `changes`), и получаем в результате:

1
2
3
4
5
6
mysql> select * from `changes`;
+----+------------+------------+-------+
| id | date       | name       | count |
+----+------------+------------+-------+
|  1 | 2011-11-15 | My Name is |    10 |
+----+------------+------------+-------+

В результате колонки `date` и `name` удачно поменялись местами.

Заключение

Конструкцией ALTER TABLE ... CHANGE COLUMN ... AFTER, как вы уже догадались, легко не только поменять местами 2 поля, но так же переместить какое-либо поле в начало или в конец.

Опубликовано: 15 ноября 2011  ·  Автор: Артём Фёдоров  ·  4666 просмотров

Категория

ГлавнаяСУБДMySQLКак поменять местами поля (MySQL)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

MySQL, СУБД

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания