数据库表间数据复制在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。
1。表结构相同的表,且在同一数据库(如,table1,table2)
Sql:insertintotable1selectfromtable2(完全复制)
insertintotable1selectdistinctfromtable2(不复制重复纪录)
insertintotable1selecttop5fromtable2(前五条纪录)
2。不在同一数据库中(如,db1table1,db2table2)
sql:insertintodb1table1selectfromdb2table2(完全复制)
insertintodb1table1selectdistinctfromdb2table2(不复制重复纪录)
insertintotdb1able1selecttop5fromdb2table2(前五条纪录)
3表结构不同的表或复制部分纪录(如,dn_user,dn_user2)
a建一个新表[DN_UserTemp](在老表dn_user上增加一列)
办法有好几个,这里说两个:
1、直接复制粘贴法,如果你的两个表再同一数据库中,直接复制粘贴就行了,先把那个空表删除,再粘贴那个有数据的表,粘贴命令之后,ACCESS会提示你给粘贴后表取名的。如果两个表不在一个数据库中,那就得打开两个数据库,有时候ACCESS不让你同时打开两个ACCESS,但反复多打开几次就可以打开了。打开之后,再进行复制粘贴 *** 作。
2、如果说这种 *** 作是经常的,也就是要提供给软件用户 *** 作的,那就只有通过DELPHI代码来实现了。
用代码进行复制,可以直接用SQL命令进行表的复制和粘贴。但具体的SQL命令,我不太清楚。
就按你说用ADO组件来进行复制
首先确定一个数据库还是两个,如果两个表在同一数据库中,这样只要一个数据库连接组件TADOConnection就行了,如果两个表是在不同的数据库中,那最好用两个TADOConnection连接组件。一个用于连接A数据库,另一个用连接B数据库。
再放两个TADODataSet组件,我习惯使用ADODataSet组件,根本不用TADOQuery和TADOTable因为ADODataSet兼有这两个组件的全部功能。放好这四个组件后,再做好连接的设置。
然后写代码:
不同的数据库语法不同(SQL Server和Oracle为例),且复制包括目标表已存在和目标表不存在的情况,分别回答:
SQL Server中,如果目标表存在:
1
insert into 目标表 select from 原表;
SQL Server中,,如果目标表不存在:
1
select into 目标表 from 原表;
Oracle中,如果目标表存在:
1
2
insert into 目标表 select from 原表;
commit;
Oracle中,如果目标表不存在:
1
create table 目标表 as select from 原表;
什么系统?两个库是不是在同一台机?
linux下个人做法:
1同一台机
用mysqldump导出表数据(具体使用可以查一下)
mysqldump
-h
host
-P
port
-p
password
-u
user
database
--default-character-set=utf8
--add-drop-table
tablename
-r
/tmp/tablesql
再导入数据
mysqldump
-h
host
-P
port
-p
password
-u
user
database
tablename
</tmp/tablenamesql
或者在进入mysql后用source命令导入。
2不同的机,就需要先把数据文件导出,然后复制到另外一台机,再进行1的导入 *** 作。
windows下没试过,一般都直接用phpMyAdmin来 *** 作了,界面 *** 作没什么说的。
以上就是关于SQL中复制一个表到另外一个数据库中(sql复制一个表数据到另一个表)全部的内容,包括:SQL中复制一个表到另外一个数据库中(sql复制一个表数据到另一个表)、delphi数据库问题 Access数据库表复制另一个表的数据 (表数据复制)谢谢、oracle怎么把数据库的表复制到另外一个数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)