作者 主題: 如何將不想要的table資料剔除?  (閱讀 6185 次)

0 會員 與 1 訪客 正在閱讀本文。

noki

  • 活潑的大學生
  • ***
  • 文章數: 207
    • 檢視個人資料
如何將不想要的table資料剔除?
« 於: 2013-03-11 09:01 »
各位大大好,
想請問大大們一個簡單問題,
如何將mysql dump出來的資料中替除掉不想要的資料?
例如小弟dump出整個資料庫資料成一個sql文件檔,
但是因為test這資料表的資料數據不需要且過於龐大,
想要從sql文件檔中刪除,
請問要如何做?

感恩。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: 如何將不想要的table資料剔除?
« 回覆 #1 於: 2013-03-11 12:58 »
各位大大好,
想請問大大們一個簡單問題,
如何將mysql dump出來的資料中替除掉不想要的資料?
例如小弟dump出整個資料庫資料成一個sql文件檔,
但是因為test這資料表的資料數據不需要且過於龐大,
想要從sql文件檔中刪除,
請問要如何做?

感恩。


如果是整個資料表都不要,可以直接在dump時加 『--ignore-table=dbname.tablename』忽略指定的資料表

noki

  • 活潑的大學生
  • ***
  • 文章數: 207
    • 檢視個人資料
Re: 如何將不想要的table資料剔除?
« 回覆 #2 於: 2013-03-12 10:33 »
感謝yamaka大大的回覆,
小弟知道這個參數,
但是小弟目前遇到的狀況是資料庫主機每天會定時的把資料dump出來,
資料庫主機小弟沒權限不能登入(系統及資料庫都沒權限)....
小弟的權限只能取得這些每天備份的sql文件,
所以想問問能不能由這些sql文件中下手,直接砍掉不必要的table資料。

感恩。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: 如何將不想要的table資料剔除?
« 回覆 #3 於: 2013-03-12 12:04 »
最好的方式還是加 --ignore-table 參數直接忽略掉
跟管理者談談,看能不能幫你加上去
或是暫時開放權限讓你自己加

如果要從 slq 文件動手,那就寫個 script 找出 table 開頭與結尾處
然後刪除中間的內容,或是有用的資料相對比較少
那就將有用的資料抓出來另外存檔

刪除檔案內的資料可以參考這裡..

http://en.kioskea.net/faq/1451-sed-delete-one-or-more-lines-from-a-file

noki

  • 活潑的大學生
  • ***
  • 文章數: 207
    • 檢視個人資料
Re: 如何將不想要的table資料剔除?
« 回覆 #4 於: 2013-03-12 14:54 »
小弟有試著開啟sql文件觀看,
每天不要的table位置都有所變動,
應該是資料數據一直增加所產生的變動。
小弟在研究看看有沒有辦法寫成script去除。
感謝Y大的回覆。