mysqldump dos últimos 1000 registros


11

como tirar o mysqldump dos últimos 1000 registros de um banco de dados

Respostas:


18

mysqldumptem uma --whereopção Supondo que você tenha algum tipo de detalhamento para descobrir quais são os últimos 1000 registros inseridos (por exemplo, um campo de incremento automático chamado id), você poderá anexar isso ao mysqldumpcomando, da seguinte maneira:

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

O 1=1é necessário porque a palavra-chave "onde" é inserido na consulta automaticamente, assim você tem que dar-lhe algum SQL para avaliar.

EDIT: Houve uma edição anônima nesta resposta removendo o espaço entre --where e "1 = 1, dizendo que o comando falhou sem espaço. Acabei de testar e ele trabalha com espaço e erros sem espaço, sem saber o que o editor estava vendo.

O erro ao deixar o espaço de fora:

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

Fiz o que você sugeriu e votei na sua resposta, mas e a violação de restrição de integridade?
licorna 21/09/11

Esse é outro problema. Minha solução é um hack na melhor das hipóteses. Se você quiser integridade para colocar as linhas de volta em algum outro lugar, isso vai ser um problema mais difícil e muito dependente de seu projeto
jj33

Isso provavelmente mudou desde que a resposta foi originalmente publicado, mas os docs mysqldump agora dizer que a opção deve ser especificados como --where="..."ou -w "..."Veja dev.mysql.com/doc/refman/5.6/en/...
Matt Passell

1
como obter um mysqldump das últimas 100 linhas para cada tabela em um banco de dados inteiro?
Rakib 17/11/2015
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.