在利用數(shù)據(jù)庫開發(fā)時,常常會將一些表之間的數(shù)據(jù)互相導入。當然可以編寫程序實現(xiàn),但是,程序常常需要開發(fā)環(huán)境,不方便。最方便是利用sql語言直接導入。既方便而修改也簡單。以下就是導入的方法。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,浠水企業(yè)網(wǎng)站建設,浠水品牌網(wǎng)站建設,網(wǎng)站定制,浠水網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,浠水網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、 表結構相同的表,且在同一數(shù)據(jù)庫(如,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、不在同一數(shù)據(jù)庫中(如,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. 打開navicat for mysql,選擇你要導出的數(shù)據(jù)庫,然后右鍵
2. 設置屬性,選擇對應的mysql版本即可,然后開始
高版本mysql和低版本mysql之間會有兼容性問題,一不小心就可能導致亂碼或者錯誤。”Unknown collation: ‘utf8mb4_unicode_ci”錯誤問題。
在利用數(shù)據(jù)庫開發(fā)時,常常會將一些表之間的數(shù)據(jù)互相導入。當然可以編寫程序實現(xiàn),但是,程序常常需要開發(fā)環(huán)境,不方便。最方便是利用sql語言直接導入。既方便而修改也簡單。以下就是導入的方法。
1、 表結構相同的表,且在同一數(shù)據(jù)庫(如,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、不在同一數(shù)據(jù)庫中(如,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的數(shù)據(jù)拷入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數(shù)據(jù)庫復制表數(shù)據(jù)
將 production 數(shù)據(jù)庫中的 mytbl 表快速復制為 mytbl_new,2個命令如下:
復制代碼代碼如下:
CREATE TABLE mytbl_new LIKE production.mytbl;
INSERT mytbl_new SELECT * FROM production.mytbl;
第一個命令是創(chuàng)建新的數(shù)據(jù)表 mytbl_new ,并復制 mytbl 的數(shù)據(jù)表結構。
第二個命令是講數(shù)據(jù)表 mytbl 中的數(shù)據(jù)復制到新表 mytbl_new 。
注:production.mytbl是指定要復制表的數(shù)據(jù)庫名稱為 production 。它是可選的。
假如沒有production. ,MySQL數(shù)據(jù)庫將會假設mytbl在當前操作的數(shù)據(jù)庫。
另外:在mysql數(shù)據(jù)庫中復制數(shù)據(jù)為:
復制代碼代碼如下:
select * into desTable from sourceTable在mssql中支持,在mysql中不支持
insert into desTable select * from sourceTable
一、復制表里面的一條記錄并插入表里面\x0d\x0a ① insert into article(title,keywords,desc,contents) select title,keywords,desc,contents from article where article_id = 100;\x0d\x0a\x0d\x0a二、復制表里的多條數(shù)據(jù)/記錄,并插入到表里面\x0d\x0a ① INSERT INTO `power_node`(title,type,status) SELECT title,type,status FROM power_node WHERE id
回答于?2022-11-16
有兩種辦法。
1、在B機器上裝mysql。
將A機器上的mysql/data下的你的數(shù)據(jù)庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然后啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數(shù)據(jù),并用LOAD DATA INFILE語句恢復數(shù)據(jù)。這種方法只能導出數(shù)據(jù)的內(nèi)容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT ... INTO OUTFILE ’file_name’
在dos命令提示符下使用mysqldump命令進行備份.
如下:
C:\Documents and Settings\Administratormysqldump yinshi c:\\backup.txt -uroot
-p12142022
這種架構一般用在以下三類場景
1. 備份多臺 Server 的數(shù)據(jù)到一臺如果按照數(shù)據(jù)切分方向來講,那就是垂直切分。比如圖 2,業(yè)務 A、B、C、D 是之前拆分好的業(yè)務,現(xiàn)在需要把這些拆分好的業(yè)務匯總起來備份,那這種需求也很適用于多源復制架構。實現(xiàn)方法我大概描述下:業(yè)務 A、B、C、D 分別位于 4 臺 Server,每臺 Server 分別有一個數(shù)據(jù)庫來隔離前端的業(yè)務數(shù)據(jù),那這樣,在從庫就能把四臺業(yè)務的數(shù)據(jù)全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現(xiàn)這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯(lián)的問題,不但性能急劇下降,管理多個實例也沒有單臺來的容易。
2. 用來聚合前端多個 Server 的分片數(shù)據(jù)。
同樣,按照數(shù)據(jù)切分方向來講,屬于水平切分。比如圖 3,按照年份拆分好的數(shù)據(jù),要做一個匯總數(shù)據(jù)展現(xiàn),那這種架構也非常合適。實現(xiàn)方法稍微復雜些:比如所有 Server 共享同一數(shù)據(jù)庫和表,一般為了開發(fā)極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總并合并多個 Server 的數(shù)據(jù)
第三類和第一種場景類似。不一樣的是不僅僅是數(shù)據(jù)需要匯總到目標端,還得合并這些數(shù)據(jù),這就比第一種來的相對復雜些。比如圖 4,那這樣的需求,是不是也適合多源復制呢?答案是 YES。那具體怎么做呢?