sql >> Database teknologi >  >> RDS >> Mysql

Sådan sletter du dubletter i MySQL-tabel

Mange veje fører til Rom. Dette er en. Det er meget hurtigt. Så du kan bruge det med store databaser. Glem ikke indeces. Tricket er:gør phoneNo unik og brug "ignorer".

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;

Hvis datatabellen allerede eksisterer, skal du kun køre en opret tabeludvælgelse med en følgende indsæt ignoreringsudvælgelse. Til sidst skal du køre nogle tabel, der omdøber udsagn. Det er alt.

Denne løsning er meget, meget hurtigere end en sletningsoperation.



  1. Re-slaving af en nedbrudt MySQL-masterserver i semisynkron replikeringsopsætning

  2. Flytning af SQL Server-databaser til skyen

  3. Konvertering af en datetime2-datatype til en datetime-datatype resulterer i en værdi uden for området

  4. MySQL Tutorial:MySQL IN-sætning (avanceret)