2013-07-10 42 views
7

假設我有數據庫A和表b。給定多個.sql文件b1,b2,...,bn,每個文件對應於b的互斥錶轉儲如何將所有文件b1,b2,...,bn合併爲一個.sql表文件?或者,如何將單個文件的導入組合到單個表中?將多個.sql表文件轉儲到單個文件

回答

15

有沒有特殊的工具來做到這一點。你可以簡單地串聯文件:

$ cat b1.sql b2.sql b3.sql > b_all.sql 

除了這些.sql文件的典型內容是DROP TABLE,那麼CREATE TABLE,那麼很多INSERT語句。如果每個單獨的轉儲文件都是這樣格式化的,那麼如果您按順序還原它們,則每個文件都將DROP TABLE並刪除由前一個文件導入的數據。

你可以沒有DROP創建轉儲文件/ CREATE語句:

$ mysqldump --no-create-info <database> <table> ... 

但如果你有轉儲文件已經(不能再甩掉他們),你想擺脫的除第一個文件外的所有DROP/CREATE語句:

$ (cat b1.sql ; cat b2.sql b3.sql | sed -e '/^DROP TABLE/,/^-- Dumping data/d') > b_all.sql 
相關問題