Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como excluir duplicatas na tabela MySQL


Muitos caminhos levam a Roma. Isso é um. É muito rápido. Então você pode usá-lo com grandes bancos de dados. Não se esqueça dos índices. O truque é:faça phoneNo único e use "ignore".
drop table if exists bkPhone_template;
create table bkPhone_template (
         phoneNo varchar(20),
         firstName varchar(20),
         lastName varchar(20)
 );

insert into bkPhone_template values('0783313780','Brady','Kelly');
 insert into bkPhone_template values('0845319792','Mark','Smith');
 insert into bkPhone_template values('0834976958','Bill','Jones');
 insert into bkPhone_template values('0845319792','Mark','Smith');
 insert into bkPhone_template values('0828329792','Mickey','Mouse');
 insert into bkPhone_template values('0834976958','Bill','Jones');

drop table if exists bkPhone;
create table bkPhone like bkPhone_template;
alter table bkPhone add unique (phoneNo);

insert  ignore into bkPhone (phoneNo,firstName,lastName) select phoneNo,firstName,lastName from bkPhone_template;

drop table bkPhone_template;

Se a tabela de dados já existir, você só precisará executar uma seleção de criação de tabela com uma seleção de ignorar a inserção a seguir. No final, você deve executar algumas instruções de renomeação de tabelas. Isso é tudo.

Essa solução alternativa é muito, muito mais rápida que uma operação de exclusão.