mysqldump的最新1000条记录


11

如何从数据库中获取最新的1000条记录的mysqldump

Answers:


18

mysqldump有一个--where选择。假设您有某种办法可以确定最后插入的1000条记录是什么(例如,一个名为的自动递增字段id),那么您应该可以将其添加到mysqldump命令上,如下所示:

mysqldump --where "1=1 ORDER BY id DESC LIMIT 1000" DB_NAME TBL_NAME

1=1因为“WHERE”关键字自动插入查询,所以你必须给它一些SQL评估是必要的。

编辑:对此响应进行了匿名编辑,删除了--where和“ 1 = 1”之间的空格,表示命令在没有空格的情况下出错。我刚刚测试过,它可以处理空格,而在没有空格的情况下出错,不确定编辑正在看。

留出空格时的错误:

mysqldump: unknown variable 'where1=1 ORDER BY UserID DESC LIMIT 1000'

我按照您的建议做了,我赞成您的回答,但是,违反完整性约束的情况又如何呢?
licorna

那是另外一个问题。我的解决方案充其量只是一个hack。如果您需要完整性以将行放回其他位置,那将是一个更棘手的问题,并且非常取决于您的设计
jj33 2011年

这可能改变,因为答案最初发布,但mysqldump的文档现在说的选项要么被指定为--where="..."-w "..."dev.mysql.com/doc/refman/5.6/en/...
马特Passell

1
如何获取整个数据库中每个表的最后100行的mysqldump?
拉基布
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.