Тема: Как в phpMyAdmin в таблице менять заполненные колонки местами?

Доброго времени суток %username% Подскажите пожалуйста , возможно ли в таблице менять заполненные колонки местами.
Переношу БД со старого бота на нового , хочу экспортировать юзеров в новую БД , но там немного другая структура , как бы мне сделать в своей таблице поменять колонки местами дабы экспортировать их на новую БД , говорят есть какой то SQL запрос которым это можно сделать , или по советуйте что нибудь.
Вообще такая задумка ... SQL запрос новой бд переписать под структуру моей таблицы потом выполнить запрос , перенести юзеров в таблицу , и в таблице колонки поменять местами как они должны быть ... наверно бред написал ..
P/S Я не сильно умный в этих делах , только учусь , прошу прощения если где то написал глупость.

2 (изменено: Мультик, 2010-04-09 12:21:02)

Re: Как в phpMyAdmin в таблице менять заполненные колонки местами?

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

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `sn` varchar(20) default NULL,
  `nick` varchar(255) default NULL,
  `localnick` varchar(255) default NULL,
  `fname` varchar(255) default NULL,
  `lname` varchar(255) default NULL,
  `email` varchar(255) default NULL,
  `city` varchar(255) default NULL,
  `homepage` varchar(255) default NULL,
  `gender` int(11) default NULL,
                    `birthyear` int(11) default NULL,
                     `birthmonth` int(11) default NULL,
                   `birthday` int(11) default NULL,
  `age` int(11) default NULL,
  `country` int(11) default NULL,
  `language` int(11) default NULL,
  `state` int(11) default NULL,
  `basesn` varchar(20) default NULL,
  `createtime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `room` int(11) default NULL,
  `lastkick` timestamp NOT NULL default '0000-00-00 00:00:00',
                 `lastclosed` timestamp NOT NULL default '0000-00-00 00:00:00',
                 `SP` timestamp NOT NULL default '0000-00-00 00:00:00',
  `rating` int(11) default NULL,
                  `viev` int(11) default NULL,
  `cloth` varchar(255) NOT NULL,
  `pet` varchar(255) NOT NULL,
  `transport` varchar(255) NOT NULL,
  `hose` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Из неё удалить лишние колонки которых нет в новой таблице (сдвинутые пробелом)

А вот структура новой таблицы

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `sn` varchar(20) default NULL,
  `nick` varchar(255) default NULL,
  `localnick` varchar(255) default NULL,
  `fname` varchar(255) default NULL,
  `lname` varchar(255) default NULL,
  `gr` varchar(255) default NULL,
  `status` text,
  `gender` int(11) default NULL,
  `age` int(11) default NULL,
  `rs` int(11) default NULL,
  `rsid` int(11) default NULL,
  `rsnick` varchar(255) default NULL,
  `country` varchar(255) default NULL,
  `city` varchar(255) default NULL,
  `email` varchar(255) default NULL,
  `homepage` varchar(255) default NULL,
  `rating` int(11) default NULL,
  `cloth` varchar(255) default NULL,
  `house` varchar(255) default NULL,
  `transport` varchar(255) default NULL,
  `pet` varchar(255) default NULL,
  `info` text,
  `bomb` int(11) default NULL,
  `language` int(11) default NULL,
  `state` int(11) default NULL,
  `basesn` varchar(20) default NULL,
  `createtime` timestamp not null default current_timestamp on update current_timestamp,
  `room` int(11) default NULL,
  `bombtime` timestamp not null default '0000-00-00 00:00:00',
  `lastbanroom` timestamp not null default '0000-00-00 00:00:00',
  `lastkick` timestamp not null default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
);

Можно будет как нибудь например запросом

ALTER TABLE `users` ADD `rsnick` varchar(255) default NULL,
ADD `status` text,
ADD `rs` int(11) default NULL,
ADD `info` text,
ADD `bomb` int(11) default NULL,
ADD `rsid` int(11) default NULL,
ADD `gr` varchar(255) default NULL,
ADD `bombtime` timestamp not null default '0000-00-00 00:00:00',
ADD `lastbanroom` timestamp not null default '0000-00-00 00:00:00'

Добавить в мою таблицу вот эти колонки только что бы они получились в таком порядке , как в новой таблице ... то есть просто из моей старой удалить лишние колонки а из новой таблицы добавить колонки тех которых нет в моей таблице , в таком порядке , как в новой ... или это можно как то проще сделать и я всё усложняю ..

3

Re: Как в phpMyAdmin в таблице менять заполненные колонки местами?

Используйте ключевое слово AFTER и после него имя поля за которым надо добавить новое.

ALTER TABLE `users`
ADD `rs` int(11) default NULL AFTER `age`;