Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Поменять поля местами


Автор: Gold Dragon 9.8.2006, 20:28
Народ, что-то переклинило....  smile Как поменять поля местами?

есть 
ID
INDEX
NAME

надо
ID
NAME
INDEX

Автор: Mal Hack 9.8.2006, 21:58
Зачем? Какая разница как хранить. Если так жестко надо, то в запросе указыай нужную последовательность.

Автор: Gold Dragon 10.8.2006, 06:32
Цитата(Mal Hack @  9.8.2006,  21:58 Найти цитируемый пост)
Если так жестко надо, то в запросе указыай нужную последовательность.
 точно  smile 

просто у меня запросы обрабатываются в одном месте одним скриптом .. А у одной таблице последовательность выпадает.. Может я и извращаюсь, но мне так удобнее smile

Автор: Illuminaty 10.8.2006, 09:01
Если это надо сделать с таблицей test, то код такой (name - тип VARCHAR (20)): 
Код

ALTER TABLE `test` ADD `name_1` VARCHAR( 20 ) NOT NULL AFTER `id` ;
UPDATE `test` SET `name_1` = `name`;
ALTER TABLE `test` DROP `name`;
ALTER TABLE `test` CHANGE `name_1` `name` VARCHAR( 20 ) NOT NULL;

Хотя не знаю, зачем такой изврат? smile 

Автор: muzer 1.9.2006, 21:15
плохие названия колонок, пересекаются с ключевыми словами..
приведу пример на такой таблице (чтобы было понятно):

Есть table_name
id1 int,
id2 int,
id3 int

Надо table_name
id1 int,
id3 int,
id2 int

ALTER TABLE table_name CHANGE id3 id3 int AFTER id1;

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)