Перенос данных из одной базы в другую (в пределах MySQL)

Don Arana

Новичок
Перенос данных из одной базы в другую (в пределах MySQL)

Привет всем!
Назрела срочная необходимость экспортировать данные одной таблицы из БД test1 в похожую (но не идентичную) таблицу другой БД под именем test2.
Все это происходит в MySQL.

Нигде особенно толком не встречал этого, поэтому опишу алгоритм таким, каким я его вижу:

Подключаюсь к БД test1, делаю выборку из таблицы.

Далее,
PHP:
while($row = mysql_fetch_array) { ...
поключаюсь к БД test2, вставляю данные в очередной ряд

INSERT INTO
test2(new_column_name)
VALUES('".$row['old_column_name']."')

PHP:
 ... }

Так?

Немного смущает, что нужно каждый раз подключаться то к одной БД, то к другой..

Или я лох и чего-то конкретного не понимаю?
 

AHTIXPICT

Новичок
А может проще сделать так:

1. CREATE TABLE new_t (SELECT * FROM old_t);
2. ALTER TABLE new_t ..............;
 

Don Arana

Новичок
AHTIXPICT
Можете чуть поподробнее? Буду благодарен.

Вы учли, что таблицы будут в дальнейшем в разных базах лежать?

Т.е. идея - создать похожую (как мне нужно, с моими требованиями) таблицу в той же БД, а потом просто перекинуть ее в другую?

-~{}~ 11.10.05 17:42:

ТопольМ
Да, тогда бы не спросил.
Если не трудно, подскажите по теме. Иначе лучше не пишите.
Заранее спасибо.
 

AHTIXPICT

Новичок
Блин, нуу даешь

1. CREATE TABLE new_base.new_t (SELECT * FROM old_base.old_t);
2. ALTER TABLE new_base.new_t ..............;

Усчитывать ньюансы должен ты а не я.
 

Don Arana

Новичок
AHTIXPICT
Да, понял, подробнее нельзя. Подробнее в мануале. Спасибо за наводку на ALTER.

-~{}~ 11.10.05 17:56:

Так нет. Немного не то.

Ситуация такая, что необходимо создание авто_инкрементных значений (id каждого товара) в новой таблице в столбце id
(тогда как в старой их нет и нет этого столбца), там есть лишь артикул товара varchar.

-~{}~ 11.10.05 18:03:

А, все, разобрался %)
 

Апельсин

Оранжевое создание
Don Arana, ну так и добавь авто_инкремент? В чем проблема?

кроме того CREATE TABLE .. SELECT все равно создает таблицу _без_индексов_. Т.е. если они были в старой таблице, то их надо перенести ручками.

либо сделать CREATE TABLE .. LIKE, для создания таблицы с такой же структурой, потом ALTER TABLE, потом INSERT .. SELECT для переноса данных.
 
Сверху