将表从一个数据库复制到另一个数据库,维护表的结构并重命名它

时间:2011-09-19 12:44:50

标签: mysql sql

我想将一个表(比如说tbl_1)从一个数据库(比如source_db)复制到另一个数据库(比如target_db),考虑以下事项

  • 应保留表的结构,包括主键和 自动增加键

  • 在创建tbl_1的副本时,我需要将其重命名为cpy_tbl_1

如何使用查询

P.S。我知道会有很多像我这样的类似问题,但我也有这些特殊的考虑因素。

3 个答案:

答案 0 :(得分:4)

CREATE TABLE db_target.cloned_table 
SELECT * 
FROM db_source.source_table;

使用上一个句子,表格将仅使用字段及其类型创建,但不会设置键,约束和引擎。您可以在同一句子中手动指定它们,如下所示:

CREATE TABLE db_target.cloned_table (
  a INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (a), KEY(b)
) ENGINE=MyISAM 
SELECT b,c FROM db_source.source_table;

mysql create table doc

答案 1 :(得分:2)

你可以达到以下目的;

首先创建target_db

mysql> create database target_db;

然后使用它

mysql>使用target_db;

然后创建名为cpy_tbl_1

的tb1结构

完成

的MySQL>像source_db.tb1;

一样创建表cpy_tbl_1

然后只需复制数据。

mysql>插入cpy_tbl_1 select * from source_db.tb1;

并检查结果

答案 2 :(得分:1)

如果您能够使用shell脚本,则mysqldump是一个功能强大且灵活的选项...特别是如果您可以使用一点sed进行搜索和替换。

简单版本:

mysqldump $SOURCE $TABLE | mysql $TARGET