2011-01-12 5 views
2

mysqldump(または他のコマンド)には、最近更新された行だけをダンプするオプションがありますか?私はこれについてドキュメントで何かを見つけることができませんでした。どうも。最近のレコードのmysqldump

+0

*最近の*あなたの場合の定義は何ですか? – alex

+0

あなたは最近どのように定義していますか?更新時間であるスキーマに列がありますか? –

+0

私はそれぞれのテーブルにタイムスタンプ列を持っています。 「最近の」とは何かを言いたいものを意味します。つまり、「どこからテーブルを選択するか?」 –

答えて

6

--whereオプションを使用してmysqldumpにwhere句を付けることができます。

--where =:mysqldumpをのmanページから

mysqldump my_schema my_table --where="modified > now() - interval 2 hour" 
1

"OUTFILEへ" 構文を使用します。MySQLのサイト上で

LOAD DATA INFILE '/tmp/result.txt' INTO table 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

ドキュメント:

http://dev.mysql.com/doc/refman/5.5/en/select.html

を必要な場合は、その後、使用して後でこれをインポートすることができ

SELECT * FROM table INTO OUTFILE '/tmp/result.txt' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
WHERE timestamp > ? 

http://dev.mysql.com/doc/refman/5.5/en/load-data.html

0

:あなたがあなたのテーブルに「改変」という列があり、過去2時間に変更されたすべての行をしたいのであれば、あなたはこのような何かを行うことができます'where_condition '、-w'where_condition'

 Dump only rows selected by the given WHERE condition. Quotes around the condition are mandatory if it contains spaces or other characters that are special to your 
     command interpreter. 

     Examples: 

      --where="user=´jimf´" 
      -w"userid>1" 
      -w"userid<1" 
0

必要なクエリのビューを定義します。次に、ビューでmysqldumpを使用します。