我想将一个表(比如说tbl_1)从一个数据库(比如source_db)复制到另一个数据库(比如target_db),考虑以下事项:
应保留表的结构,包括主键和 自动增加键
在创建tbl_1的副本时,我需要将其重命名为cpy_tbl_1
如何使用查询?
P.S。我知道会有很多像我这样的类似问题,但我也有这些特殊的考虑因素。
答案 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;
答案 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