如何将mysql数据库一个database中的所有表合并到一个新表中

下面是我的代码,里面DATABASE_TABLES是错的,TABLE_NAME不确定对不对,我想表达的意思是提取出一个database中表名前缀是pl_express_longbang_201403的所有表中所有表中的内容,合并到一个新表中,不知这个DATABASE_TABLES和TABLE_NAME该用什么mysql关键字替换,或者这条语句有哪些地方需要修改,感谢各位的帮忙。create table pl_express_longbang as select * from DATABASE_TABLES where TABLE_NAME LIKE 'pl_express_longbang_201403%';
请各位大神帮忙解决一下,最近正在研究用ETL工具进行数据迁移,我想第一步现将mysql数据表都合并到一个表,然后再迁移到oracle数据库中。

以MySQL数据库为例,通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。

类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:(此方法只适合导出两表在同一database)
INSERT INTO 目标表 SELECT * FROM 来源表;
例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:
INSERT INTO newArticles SELECT * FROM articles;

类别二、 如果只希望导入指定字段,可以用这种方法:
INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
请注意以上两表的字段必须一致(字段类型),否则会出现数据转换错误。

1、跨服务器复制表中数据
insert into openrowset('sqloledb','localhost';'sa';'123',Test.dbo.Table_B)
select * from Test.dbo.Table_A
//启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
//使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

2、//不跨服务器
insert into dbo.Table_B) select * from dbo.Table_A
将表名和数据库连接字符串用代码拼接好 然后执行上述您需要的sql语句 程序功能即可完成

将一个mysql数据库中的一个表导入到另一个mysql数据库中

db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名

1.方法一:
登录导出到的数据库,执行
create table fromtable select * from db1.fromtable;
2.方法二:
在cmd下执行,mysqldump -u root -p db1 fromtable file=d:/fromtable.sql; 输入秘密,root为用户名
登录db2 执行 source d:/fromtable.sql;
3.方法三:
登录db1 执行 select * from fromtable into outfile "d:/fromtable .txt"; 导出纯数据格式
登录db2 执行 load data infile d:/fromtable .txt into table fromtable; 需要先建一张和原表结构一样的空表。
4.建一个odbc连接,先导出到access中,再导出到另一个库中。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-26
你这样查是不行的,语法错的。
你需要先把类似表名查出来,然后再拼接SQL 语句,如

insert into tablea
select * from pl_1
union all
select * from pl_2
union all
select * from pl_n追问

你好,我这个类似表很多,有一千个,请问该怎么查询啊

追答

在SQL SERVER 上面我可以写出来,MYSQL不是很熟,
表名可以在系统表里找,select * from mysql.tables where name like '%aaa%',
取出来后,把表分批拼成INSERT语句。

追问

sql server 工具我没有用过,它能进行mysql数据库查询合并吗,怎么实现的
还有就是select * from mysql.tables where name like '%aaa%',这句话我换成select * from MYSQL.TABLES where NAME like 'pl%';在mysql中运行错误table 'MYSQL.TABLES' doesn't exit

第2个回答  2015-05-06
首先你要确定这些表名之间有什么规律吗?
其次表的物理的结果是否相同啊
尝试用存储过程。达到合并的效果啊

如何将mysql数据库一个database中的所有表合并到一个新表中
将表名和数据库连接字符串用代码拼接好 然后执行上述您需要的sql语句 程序功能即可完成 将一个mysql数据库中的一个表导入到另一个mysql数据库中 db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名 1.方法一:登录导出到的数据库,执行 create table fromtable select * from db1.f...

如何将mysql的一个完整数据库全部复制到另外一个数据库?
1. 在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000),恢复到从库;2. 设置复制过滤,过滤表 t:CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');3. 启动复制,回放到 aaaa:10000 时停止复制(此时从库上所有表的数据都在同一状态,是一致的);START SLAVE ...

如何把两个完全相同的mysql数据库合并到另一个数据库中
问题一: insert into databaseB select * from databaseA;问题二:databaseC是库吗??databaseA,databaseB是表?? 那么就 执行 create table databaseC.t1 as select * from databaseA; create table databaseC.t2 as select * from databaseB;第三个问题没看懂,就是不能让databaseA和...

mysql怎么复制一个数据库中的一张表到另外一个数据库~~~
1.同一台机 用mysqldump导出表数据(具体使用可以查一下)mysqldump -h host -P port -p password -u user database --default-character-set=utf8 --add-drop-table tablename -r \/tmp\/table.sql 再导入数据 mysqldump -h host -P port -p password -u user database tablename ...

mysql数据库中的多表查询与不同库表关联详解mysql不同库表关联
1. JOIN操作 JOIN操作是MySQL中最常用的多表查询方式之一。JOIN分为内连接、左连接、右连接和全连接四种类型。下面将分别介绍。内连接:内连接(inner join)又被称为等值连接(equijoin),它只返回两个表中有匹配的数据行。其基本语法如下:SELECT FROM table1 JOIN table2 ON table1.column = ...

MySQL实现不同表同步mysql不同表之间同步
现在,主数据库中的数据已经可以自动同步到从数据库了。2. 使用触发器实现数据同步 另一种实现不同表同步的方式是使用MySQL的触发器技术。通过在MySQL中创建触发器,我们可以指定当一个表中的数据被更新时,就会自动执行相关的SQL语句,以便将数据同步到另一个表。触发器可以很容易地自动化处理数据同步,...

如何正确还原MySQL数据库mysql数据库如何还原
1、可以使用MySQL Dump程序进行数据库备份,MySQL Dump可以将MySQL数据库快速备份到硬盘中,可以方便地将备份还原到原始状态。它使用如下代码来备份MySQL数据库:mysqldump -u root -p database_name > database_name.sql 2、可以使用MySQL Administrator工具来实现数据库备份和还原。MySQL Administrator工具...

如何把很多结果一样的表放在一起统计
1.2 merge表存储引擎在如下这种使用场合会最为有用:1,2,1 网上这样说:如果需要把日志记录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要制作来自多个表的合计查询,MERGE表这时会非常有效。然而,这项功能有局限性。你只能合并MyISAM表而且必须严格遵守相同的表定义的限制...

MySQL表的数目相加如何在不同表中执行这个操作mysql不同表数相加
在此代码中,我们首先定义一个名为total_records的变量,初始值为0。然后,我们通过查询information_schema的TABLES表格,列出该数据库中所有的基础表格,即排除视图、临时表等。最后遍历所有表格并将每个表格的记录数相加,将结果存储在total_records变量中。注意,此代码中的database_name应该替换为您想统计...

请问如何将一个数据库中查到的结果加入到另一个数据库?
如何将 一个数据库同步到另一个数据库 1.直接方法,将需要的查询的资料赋值到excel中。相应调整,然后再赋值到目标表中(对于资料量不大的情况下较快) 2.最好两资料库拥有相同的登入名和密码不然比较麻烦 insert into 目标资料库.dbo.目标表名(栏位1...栏位n) select 段1...栏位n ...

相似回答