Я хочу скопировать таблицу из одной базы данных и вставить в другую таблицу базы данных
96
Я хочу скопировать схему таблицы, а также данные из этой таблицы в другую таблицу базы данных в другой базе данных на работающем сервере. Как я мог это сделать?
использовать два соединения с базой данных и читать структуру таблицы из одного и выполнять этот запрос в другом
Дау
Эти базы данных находятся в разных экземплярах mysql или в одном? Различные экземпляры могут быть настроены с репликацией, если это непрерывный процесс.
Ник
@Nick мои базы данных находятся на разных экземплярах mysql. Не могли бы вы объяснить, как это скопировать?
johk95
Ответы:
218
Если вы хотите скопировать таблицу из одной базы данных в другую, вы можете просто сделать, как показано ниже.
Отличное решение, если таблица не имеет ограничений внешнего ключа. Я использовал это для создания копии всей базы данных, а не только одной таблицы. Для этого я бы рекомендовал использовать команду mysqldump.
Thorne51
MySQL теперь может хранить данные таблицы в отдельных файлах (и файлы frm тоже находятся в таблице). Этот подход, несомненно, сработает, но с огромными базами данных он медленный. Может быть, есть другой способ?
Alex Kovshovik 08
1
Это работает, только если базы данных находятся на одном сервере.
zgr024
10
или просто CREATE TABLE db2.table SELECT * FROM db1.table в MySQL 5
Ответы:
Если вы хотите скопировать таблицу из одной базы данных в другую, вы можете просто сделать, как показано ниже.
источник
или просто CREATE TABLE db2.table SELECT * FROM db1.table в MySQL 5
источник
В BASH вы можете:
источник
СОЗДАТЬ ТАБЛИЦУ db2.table_new как SELECT * FROM db1.table_old
источник
Если вы просто хотите скопировать структуру, просто используйте
CREATE TABLE Db_Name.table1 LIKE DbName.table2;
Ps> что не будет копировать схему и данные
источник
просто используйте -
СОЗДАТЬ ТАБЛИЦУ DB2.newtablename SELECT * FROM DB1.existingtablename;
источник
В командной строке:
Это скопирует таблицу внутри SCHEMA на локальном хосте в SCHEMA2 на другом хосте.
localhost и otherhost - это просто имя хоста и могут быть одинаковыми или разными.
источник