使用這種方法前,我們需要先下載一個(gè)MySQL客戶端工具SqlYog。點(diǎn)擊這里下載并安裝
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)建站的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
下面我們開始復(fù)制數(shù)據(jù)庫(kù):
1、打開SqlYog community Edition,分別在不同的選項(xiàng)卡中打開源數(shù)據(jù)庫(kù)服務(wù)器與目標(biāo)數(shù)據(jù)庫(kù)服務(wù)器,這一點(diǎn)很重。
在源數(shù)據(jù)庫(kù)服務(wù)器選項(xiàng)卡中你將看到所有數(shù)據(jù)庫(kù)列表。
2、在需要復(fù)制遷移的數(shù)據(jù)庫(kù)上右擊,在彈出菜單中選擇“Copy Database to Different Host/Database”
3、在彈出對(duì)話框中,我們能看到源數(shù)據(jù)庫(kù)服務(wù)器及目標(biāo)服務(wù)器,在左邊,通過勾選復(fù)選框來(lái)選擇需要復(fù)制遷移的對(duì)象,如表、函數(shù)、觸發(fā)器等,也可以選擇所有對(duì)象。
4、在右邊選擇需要遷移的目標(biāo)服務(wù)器或數(shù)據(jù)庫(kù)
5、根據(jù)你的需要選擇復(fù)制類型:“Structure and Data”或“Structure only”,即“結(jié)構(gòu)和數(shù)據(jù)”或“僅結(jié)構(gòu)”。
6、選擇結(jié)束后點(diǎn)擊“Copy”按鈕開始復(fù)制,知道數(shù)據(jù)遷移結(jié)束。
本文給大家分享了好幾種復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的示例介紹,具體詳情請(qǐng)看下文吧。
1、復(fù)制表結(jié)構(gòu)及數(shù)據(jù)到新表
CREATE
TABLE
新表SELECT
*
FROM
舊表
這種方法會(huì)將oldtable中所有的內(nèi)容都拷貝過來(lái),當(dāng)然我們可以用delete
from
newtable;來(lái)刪除。
不過這種方法的一個(gè)最不好的地方就是新表中沒有了舊表的primary
key、Extra(auto_increment)等屬性。需要自己用"alter"添加,而且容易搞錯(cuò)。
2、只復(fù)制表結(jié)構(gòu)到新表
CREATE
TABLE
新表SELECT
*
FROM
舊表WHERE
1=2
或CREATE
TABLE
新表LIKE
舊表
3、復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)一樣)
INSERT
INTO
新表SELECT
*
FROM
舊表
4、復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)不一樣)
INSERT
INTO
新表(字段1,字段2,.......)
SELECT
字段1,字段2,......
FROM
舊表
5、可以將表1結(jié)構(gòu)復(fù)制到表2
SELECT
*
INTO
表2
FROM
表1
WHERE
1=2
6、可以將表1內(nèi)容全部復(fù)制到表2
SELECT
*
INTO
表2
FROM
表1
7、
show
create
table
舊表;
這樣會(huì)將舊表的創(chuàng)建命令列出。我們只需要將該命令拷貝出來(lái),更改table的名字,就可以建立一個(gè)完全一樣的表
8、mysqldump
用mysqldump將表dump出來(lái),改名字后再導(dǎo)回去或者直接在命令行中運(yùn)行
9、復(fù)制舊數(shù)據(jù)庫(kù)到新數(shù)據(jù)庫(kù)(復(fù)制全部表結(jié)構(gòu)并且復(fù)制全部表數(shù)據(jù))
#mysql
-u
root
-ppassword
CREATE
DATABASE
new_db;
#mysqldump
old_db
-u
root
-ppassword--skip-extended-insert
--add-drop-table
|
mysql
new_db
-u
root
-ppassword
10、表不在同一數(shù)據(jù)庫(kù)中(如,db1
table1,
db2
table2)
sql:
insert
into
db1.table1
select
*
from
db2.table2
(完全復(fù)制)
insert
into
db1.table1
select
distinct
*
from
db2.table2(不復(fù)制重復(fù)紀(jì)錄)
insert
into
tdb1.able1
select
top
5
*
from
db2.table2
(前五條紀(jì)錄)以上內(nèi)容就是本文的全部敘述,希望大家喜歡。
如果操作系統(tǒng)兼容性強(qiáng)的話,mysql數(shù)據(jù)直接復(fù)制數(shù)據(jù)可以用。
直接復(fù)制數(shù)據(jù)的步驟如下:
復(fù)制一定前必須關(guān)閉MYSQL程序(不關(guān)閉程序,復(fù)制出的表易出問題,復(fù)制不全面);
選中要復(fù)制的數(shù)據(jù)右鍵復(fù)制或者ctrl+c后粘貼即可。
如果操作系統(tǒng)不兼容的話,mysql數(shù)據(jù)直接復(fù)制數(shù)據(jù)不可以用。
最好的方法是使用導(dǎo)入數(shù)據(jù)的方法,導(dǎo)入數(shù)據(jù)的步驟如下:
選中數(shù)據(jù)庫(kù)mydata;
右擊出現(xiàn)“運(yùn)行sql文件”;
把需要導(dǎo)入的數(shù)據(jù)庫(kù)文件,后綴名是sql選好,直接導(dǎo)入即可。
但是這種方法對(duì)大數(shù)據(jù)量的表進(jìn)行操作非常慢。因?yàn)椴粌H導(dǎo)出了數(shù)據(jù)同時(shí)導(dǎo)出了表結(jié)構(gòu)。
在針對(duì)大數(shù)據(jù)量的表時(shí),可以使用infile導(dǎo)入數(shù)據(jù),導(dǎo)入時(shí)間會(huì)很快,命令如下:
mysqlload data infile '文件路徑' into table 表名;