Если таблицы одинаковы (уже созданы), то нам нужно просто скопировать данные:
Копирование полностью всех данных из одной таблицы mysql в другую:
INSERT INTO `db`.`table_to`
SELECT *
FROM `db`.`table_from`;
Если необходимо скопировать только некоторые столбцы, то применяем следующую конструкцию:
INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`)
SELECT `a1`, `a2`, `a3`, `a4`
FROM `db`.`table_from`;
Для копирования данных из одной таблицы MySQL в другую по условию:
INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`)
SELECT `a1`, `a2`, `a3`, `a4`
FROM `db`.`table_from`
WHERE `a2` < '2014-04-30 11:37:38';
Если же нам необходимо создать новую таблицу (копию)
Для создания копии без копирования индексов
CREATE TABLE `db`.`table_to` SELECT * FROM `db`.`table_from`
Для создания копии с индексами:
CREATE TABLE `db`.`table_to` LIKE `db`.`table_from`;
INSERT INTO `db`.`table_to` SELECT * FROM `db`.`table_from`;
А как скопировать только таблицы которые начинаются например на ‘wp_’ из одной базы в другую?
Возможно как нибудь через
SELECT * FROM information_schema.tables WHERE TABLE_NAME LIKE '%prefix%';
(таблица tables БД information_schema содержит имена всех таблиц)