Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
juniorarruda

MySQL sql delete no mysql

Recommended Posts

Pessoal,

Devido a um erro de configuração em um rastreador veicular ele enviou muitas posições para minha plataforma de rastreamento portanto queria fazer uma limpeza no meu banco mas sem excluir tudo, eu queria que a cada 6 registros excluir 5 e deixar 1. O problema ocorreu da id 16171 até 19499. Como faço essa SQL?

Muito obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

juniorarruda, exiba um trecho dos seus dados e explique melhor o seu critério para exclusão.

 

Do ID 16171 até o 19499 tem 3329 registros. Você quer excluir 2663 desses registros, é isso? Mas qual o critério? Serão excluídos os 2663 registros mais antigos entre os ID's citados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erciley, aí está um trecho, o nome da tabela é positions. O critério é esse mesmo, a cada 6 registros excluir 5 e deixar 1. Porque esses dados me mostram na api do google um caminho que o veículo percorreu mas com muitos detalhes, eu gostaria de continuar exibindo o caminho completo na plataforma porém com menos registros que já é o suficiente para mim. Ou seja, eu gostaria de excluir do 16171 até o 16175(os 5 a ser excluídos) e pular o registro 16176( o registro a ser deixado) depois excluir do 16177 até o 16181(5 a serem excluídos) e pular o 16182(o registro a ser deixado) e assim por diante até o 19499.

 

 

image.thumb.png.a25ccf8e938afac4de13f16ce4796442.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi @juniorarruda . 

 

Dessa forma, não vejo outra maneira a não ser criar uma PROCEDURE para fazer isso. =/

 

Caso queira uma ajuda na procedure, dá um alô.

 

Agora se quiser um DELETE direto, creio que só teria como excluir os últimos registros, (de 10 mil registros no range passado, excluiria os 7500 mais velhos, por exemplo).

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Erciley JuniorEu gostaria que me ajudasse com o PROCEDURE sim. Eu preciso abrir outro tópico ou pode ser neste mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@juniorarruda , faz o teste, mas acho que nem precisa de PROCEDURE viu.

 

É só fazer um DELETE usando a função matemática MOD (que em mysql é %).

 

Testei e deu certo, faz um teste.

 

DELETE FROM positions WHERE ID BETWEEN 1 AND 20 AND ( (ID % 6) != 0);

Criei os seguintes dados para testar:

 

CREATE TEMPORARY TABLE positions (ID INT PRIMARY KEY AUTO_INCREMENT,NOME VARCHAR(03));

INSERT INTO positions (NOME) VALUES ('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO'),('ECO');

 

Caso queira a PROCEDURE, me avise que faço rapidão aqui pra você dar uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, tá na mão a procedure também.

 

veja o que prefere. dá uma lida para entender.

 

veja que criei uma tabela positions com 1000 registros apenas para eu poder testar.

 

remova o código desnecessário.

 

drop temporary table if exists positions;

create temporary table positions (id int primary key auto_increment,nome varchar(03)) engine=myisam;

insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');
insert into positions (nome) values ('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco'),('eco');

drop procedure if exists proc_removeregistros;

delimiter $$

create procedure proc_removeregistros(nid_inicial int,nid_final int,nremove int)
begin

   declare ncontador int;
   declare latualizou bool;

   set ncontador:=0;

   set nid_inicial:=nid_inicial-1;

   my_while: while (true) do
      begin
         set nid_inicial:=nid_inicial+1;

         if (nid_inicial > nid_final) then
            begin
               leave my_while;
            end;
         end if;

         if (ncontador = nremove) then
            begin
               set ncontador:=0;
               iterate my_while;
            end;
         end if;

         delete from positions where id = nid_inicial;

         set latualizou:=row_count() > 0;

         if (latualizou) then
            begin
               set ncontador:=ncontador+1;
            end;
         end if;
      end;
   end while;
end$$

delimiter ;

call proc_removeregistros(1,1000,5);

select * from positions;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×