mysqldump(或其他一些命令)是否有选项只能转储最近更新的行?我无法在文档中找到任何关于此的内容。 THX。
答案 0 :(得分:6)
您可以使用--where选项为mysqldump提供where子句。因此,如果您的表中有一个名为“modified”的列,并且您希望在过去2小时内修改所有行,则可以执行以下操作:
mysqldump my_schema my_table --where="modified > now() - interval 2 hour"
答案 1 :(得分:1)
使用“into outfile”语法:
SELECT * FROM table INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
WHERE timestamp > ?
然后,如有必要,您可以使用以下方法导入:
LOAD DATA INFILE '/tmp/result.txt' INTO table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
MySQL网站上的文档:
答案 2 :(得分:0)
来自mysqldump手册页:
- where ='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"
答案 3 :(得分:0)
定义所需查询的视图。然后在视图上使用mysqldump。