1.表结构完全相同
看两个表的结构是否相同,相同的话直接导过去就行,导出SQL再导入另一表,当然,你也可以直接复制。很多工具都有这个功能。(phpmyadmin navicat都有此功能)
2.表结构部分相同
比如A表的ID字段对应B表gid字段,A表title字段对应B表caption字段,甚至字段个数也不相同,那这时候你得手工指定那两个字段一一对应,复制哪些字段,丢弃字段等操作。其实工具里也有。自己多用
3.2张表的结构很杂乱,字段类型重合较少,或者A表中某个字段的数据你不是全部要,只要一部分或者需要转换为其他格式,这时候你可以写脚本来处理,windows下的vbs和linux下的shell都能方便地处理,当然了,你不嫌麻烦可以搞到Excel里边手工筛选。
应该说表复制很多情况下都是第一种和第二种情况,操作不难,多用工具很方便,不用自己敲命令处理,希望对你有帮助!
以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中,再导出到另一个库中。
一、复制表里面的一条记录并插入表里面① insert into article(title,keywords,desc,contents) select title,keywords,desc,contents from article where article_id = 100
二、复制表里的多条数据/记录,并插入到表里面
① INSERT INTO `power_node`(title,type,status) SELECT title,type,status FROM power_node WHERE id <5
② INSERT into jiaban (num,overtime) SELECT num,overtime from jiaban where id IN(1,3,5,6,7,9)
三、在创建表时,就插入另一张表里面的某些数据
① create table user AS select * from member where id <10
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)