天天看點

[手遊項目2]-20-mysql還原一個庫的部分資料

1.先備份整個庫,然後導出你需要的部分資料

方法一、insert和select結合使用

1、建立一個表,比如new-table,包含所要導出的字段的名稱,比如a,b,c 

2、使用insert into new-table (a,b,c) select a,b,c from old-table; 

3、剩下的步驟就是導出這個新的表,然後進行文本的處理

方法二、使用MySQL的SELECT INTO OUTFILE 備份語句(推薦)

在下面的例子中,生成一個檔案,各值用逗号隔開。這種格式可以被許多程式使用。

複制代碼 代碼如下:

SELECT a,b,a+b INTO OUTFILE ‘/tmp/result.text' 

FIELDS TERMINATED BY ‘,' OPTIONALLY ENCLOSED BY ‘"' 

LINES TERMINATED BY ‘\n' 

FROM test_table;

詳細見select的使用方法

select subject into outlifile ‘/tmp/xiaoruizi.text' fields terminated by ‘\t' optionally enclosed by ‘"' lines terminated by  ‘\n' from pw_blog;

方法三、使用mysqldump

很奇妙的是我發現了mysqldump其實有個很好用的參數“—w”

幫助文檔上說明:

-w|–where= 

       dump only selected records; QUOTES mandatory!

那麼是不是可以利用這個參數來導出某些值呢?比如我隻要導出id大于2312387的某些資料:

mysqldump -u root -p bbscs6 BBSCS_USERINFO –where "ID>2312387" > BBSCS_USERINFO-par.sql

資料:mysql導出指定資料或部份資料的方法 ​​https://www.jb51.net/article/47525.htm​​

2.把你需要還原的那部分資料删掉,導入你備份的

有多種方法.請參考以下方法.

方法一:

安裝一個mysql的用戶端,比如navicat,建好連接配接,打開要導入的資料庫,點選導入向導,選擇要導入的 資料,選擇要導入的目标表,在最後的選項中選擇附加到已有資料.

方法二:

先使用mysq指令行導入新資料到一張新表,新表結構與之前表一樣.然後執行以下插入語句.

假定新表名為new_tb,原表名為old_tb,

insert into old_tb select * from new_tb

追問

導出資料時出現DROP TABLE IF EXISTS `product`這句話,有沒有什麼辦法 在導出的時候不出現這句話呢!!!

追答

你别導出sql檔案呀,你導出為CSV或txt