mysql 跨库复制_Mysql跨数据库(在同一IP地址中)复制表
數(shù)據(jù)庫(kù)表間數(shù)據(jù)復(fù)制分類
在利用數(shù)據(jù)庫(kù)開發(fā)時(shí),常常會(huì)將一些表之間的數(shù)據(jù)互相導(dǎo)入。當(dāng)然可以編寫程序?qū)崿F(xiàn),但是,程序常常需要開發(fā)環(huán)境,不方便。最方便是利用sql語(yǔ)言直接導(dǎo)入。既方便而修改也簡(jiǎn)單。以下就是導(dǎo)入的方法。1、 表結(jié)構(gòu)相同的表,且在同一數(shù)據(jù)庫(kù)(如,table1,table2)
Sql :insert into table1 select * fromtable2 (完全復(fù)制)insert into table1 select distinct * fromtable2(不復(fù)制重復(fù)紀(jì)錄)insert into table1 select top 5 * fromtable2 (前五條紀(jì)錄)2、 不在同一數(shù)據(jù)庫(kù)中(如,db1 table1,db2 table2)
sql:insert into db1.table1 select * fromdb2.table2 (完全復(fù)制)insert into db1.table1 select distinct * fromdb2table2(不復(fù)制重復(fù)紀(jì)錄)insert into tdb1.able1 select top 5 * fromdb2table2 (前五條紀(jì)錄)3、 表結(jié)構(gòu)不同的表或復(fù)制部分紀(jì)錄(如,dn_user,dn_user2)
a. 建一個(gè)新表[DN_UserTemp](在老表dn_user上增加一列)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)ON [PRIMARY]b. 將dn_uer2的數(shù)據(jù)拷入dn_usertemp
sql:insert into dn_usertemp select * fromdn_user2
c.將dn_usertemp 拷入dn_user
sql:declare @i int
declare @j int
declare @Namefntypeset @i=1
select @j=count(*) fromdn_usertempwhile @i
begin
select @Name=Name from dn_usertemp where Num=@i
print @Name
insert into dn_user (Name) values (@Name) where Num=@i
select @i=@i 1
endMySql數(shù)據(jù)庫(kù)復(fù)制表數(shù)據(jù)
將 production 數(shù)據(jù)庫(kù)中的 mytbl 表快速?gòu)?fù)制為 mytbl_new,2個(gè)命令如下:CREATE TABLE mytbl_new LIKEproduction.mytbl;INSERT mytbl_new SELECT * FROMproduction.mytbl;
第一個(gè)命令是創(chuàng)建新的數(shù)據(jù)表 mytbl_new ,并復(fù)制 mytbl 的數(shù)據(jù)表結(jié)構(gòu)。
第二個(gè)命令是講數(shù)據(jù)表 mytbl 中的數(shù)據(jù)復(fù)制到新表 mytbl_new 。
注:production.mytbl是指定要復(fù)制表的數(shù)據(jù)庫(kù)名稱為 production 。它是可選的。
假如沒(méi)有production. ,MySQL數(shù)據(jù)庫(kù)將會(huì)假設(shè)mytbl在當(dāng)前操作的數(shù)據(jù)庫(kù)。
另外:在mysql數(shù)據(jù)庫(kù)中復(fù)制數(shù)據(jù)為:select * into desTable fromsourceTable在mssql中支持,在mysql中不支持insert into desTable select * from sourceTable
總結(jié)
以上是生活随笔為你收集整理的mysql 跨库复制_Mysql跨数据库(在同一IP地址中)复制表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 索引 原理_MySQL索引实
- 下一篇: mysql binlog rotate_