sql >> Database >  >> RDS >> Mysql

Hoe duplicaten in de MySQL-tabel te verwijderen

Vele wegen leiden naar Rome. Dit is een. Het is heel snel. U kunt het dus gebruiken met grote databases. Vergeet de indeces niet. De truc is:maak phoneNo uniek en gebruik "negeren".

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;

Als de datatabel al bestaat, hoeft u alleen een create table select uit te voeren met de volgende insert negeer select. Aan het einde moet u enkele tabelnaamgevingsinstructies uitvoeren. Dat is alles.

Deze tijdelijke oplossing is veel, veel sneller dan een verwijderbewerking.



  1. MS SQL OP DELETE CASCADE meerdere externe sleutels die naar dezelfde tabel verwijzen?

  2. Maak een cumulatieve somkolom in MySQL

  3. Verschil tussen een gebruiker en een schema in Oracle?

  4. Opdrachtgeschiedenis in isql