MySQL跨数据库复制表(在同一IP地址中)示例
这篇文章主要为大家详细介绍了MySQL跨数据库复制表(在同一IP地址中)示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
数据库表间数据复制分类在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。
1、 表结构相同的表,且在同一数据库(如,table1,table2)
Sql :
代码如下:
1 2 3 | <code>insert into table1 select * from table2 (完全复制) insert into table1 select distinct * from table2(不复制重复纪录) insert into table1 select top 5 * from table2 (前五条纪录)</code> |
2、不在同一数据库中(如,db1 table1,db2 table2)
sql:[code]insert into db1.table1 select * from db2.table2 (完全复制)insert into db1.table1 select distinct * from db2table2(不复制重复纪录)insert into tdb1.able1 select top 5 * from db2table2 (前五条纪录)
3、表结构不同的表或复制部分纪录(如,dn_user,dn_user2)
a. 建一个新表[DN_UserTemp](在老表dn_user上增加一列)
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <code>CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL) [Id] [idtype] NOT NULL , [Name] [fntype] NOT NULL , [Descript] [dstype] NULL , [LogonNm] [idtype] NOT NULL , [Password] [idtype] NULL , [Gender] [char] (1) NULL , [Quited] [booltype] NOT NULL, [OffDuty] [booltype] NOT NULL , [Stopped] [booltype] NOT NULL, [OSBind] [booltype] NOT NULL, [Domain] [idtype] NULL , [EMail] [fntype] NULL , [UnitId] [idtype] NULL , [BranchId] [idtype] NULL , [DutyId] [idtype] NULL , [LevelId] [idtype] NULL , [ClassId] [idtype] NULL , [TypeId] [idtype] NULL , [IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL , [ExpireDT] [datetime] NULL , [Sort] [int] NOT NULL , [AllowDel] [booltype] NOT NULL, [UnitChief] [booltype] NOT NULL, [BranchChief] [booltype] NOT NULL , [UnitDeputy] [booltype] NOT NULL , [BranchDeputy] [booltype] NOT NULL , [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL</code> |
) ON [PRIMARY]
b. 将dn_uer2的数据拷入dn_usertemp
sql:insert into dn_usertemp select * from dn_user2
c.将dn_usertemp 拷入dn_user
sql:
代码如下:
1 2 3 4 5 6 7 | <code> declare @i int declare @j int declare @Name fntype set @i=1 select @j= count (*) from dn_usertemp while @i<@j 1 begin</code> |
select @Name=Name from dn_usertemp where Num=@iprint @Nameinsert into dn_user (Name) values (@Name) where Num=@iselect @i=@i 1end
将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:
代码如下:
1 2 3 | <code>CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; </code> |
第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。
第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。
注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。
假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。
另外:在mysql数据库中复制数据为:
代码如下:
1 2 3 | <code>select * into desTable from sourceTable在mssql中支持,在mysql中不支持 insert into desTable select * from sourceTable </code> |
注:关于MySQL跨数据库复制表(在同一IP地址中)示例的内容就先介绍到这里,更多相关文章的可以留意