MySQL резервного копирования и восстановления в таблице с разными именами столбцов - PullRequest
0 голосов
/ 05 августа 2011

У меня есть таблица - Customers_old.Я хочу скопировать все данные из этой таблицы, поэтому я буду использовать mysqldump.

Мне нужно восстановить данные в таблицу Customers_new, в которой имена столбцов отличаются от таблиц customer_old.

Какмне сделать это?

INSERT..SELECT предназначен только для копирования каждой строки вручную?

Пожалуйста, сообщите

Спасибо

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

Чтобы расширить ответ PMV:

INSERT INTO newtable (column1_new, column2_new, ...) 
  SELECT column1_old, column2_old FROM oldtable
1 голос
/ 05 августа 2011

Вы можете сделать это с помощью простой операции ctas (Create Table AS):

CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old

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

см .: http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html

0 голосов
/ 05 августа 2011

Вы не можете сделать это напрямую, если только вы не взломали файл дампа вручную, чтобы изменить имена столбцов в нем.Один из вариантов - загрузить дамп во временную базу данных / таблицу, а затем выполнить несколько запросов ALTER TABLE, чтобы переименовать столбцы в соответствии с вашими предпочтениями.Или вы можете сделать INSERT / SELECT, но в итоге вы удвоите данные (новая переименованная таблица / поля + старая исходная таблица / поля).

0 голосов
/ 05 августа 2011

Вы можете либо отредактировать имена столбцов и таблиц в файле дампа sql, либо импортировать новую таблицу, а затем сделать INSERT SELECT из старой таблицы.

...