程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql跨數據庫復制表(在同一IP地址中)示例

mysql跨數據庫復制表(在同一IP地址中)示例

編輯:關於MYSQL數據庫

數據庫表間數據復制分類

在利用數據庫開發時,常常會將一些表之間的數據互相導入。當然可以編寫程序實現,但是,程序常常需要開發環境,不方便。最方便是利用sql語言直接導入。既方便而修改也簡單。以下就是導入的方法。

1、 表結構相同的表,且在同一數據庫(如,table1,table2)

Sql :
復制代碼 代碼如下:
insert into table1 select   *    from table2 (完全復制)
insert into table1 select   distinct   *   from table2(不復制重復紀錄)
insert into table1 select   top 5 *   from   table2 (前五條紀錄)

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上增加一列)
復制代碼 代碼如下:
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的數據拷入dn_usertemp

sql:insert into dn_usertemp select * from dn_user2

c.將dn_usertemp 拷入dn_user

sql:
復制代碼 代碼如下:
declare   @i int
declare   @j int
declare   @Name fntype
set @i=1
select @j=count(*) from dn_usertemp
while @i<@j 1
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
end


MySql數據庫復制表數據

將 production 數據庫中的 mytbl 表快速復制為 mytbl_new,2個命令如下:
復制代碼 代碼如下:
CREATE TABLE mytbl_new LIKE production.mytbl;
INSERT mytbl_new SELECT * FROM production.mytbl;

第一個命令是創建新的數據表 mytbl_new ,並復制 mytbl 的數據表結構。

第二個命令是講數據表 mytbl 中的數據復制到新表 mytbl_new 。

注:production.mytbl是指定要復制表的數據庫名稱為 production 。它是可選的。

假如沒有production. ,MySQL數據庫將會假設mytbl在當前操作的數據庫。

另外:在mysql數據庫中復制數據為:
復制代碼 代碼如下:
select * into desTable from sourceTable在mssql中支持,在mysql中不支持
insert into desTable select * from sourceTable

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved