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

Slet dublerede poster uden at oprette en midlertidig tabel

Her er en in-place-løsning (men ikke one-liner)

Find ud af max id:

select max(id) as maxid 
  from shop;

Husk denne værdi. Lad os sige, at det er lig med 1000;

Genindsæt unikke værdier med offset:

insert into shop (id, tax_id) 
select distinct id + 1000, tax_id 
  from shop;

Drop gamle værdier:

delete from shop
  where id <= 1000;

Gendan normale id'er:

update shop
  set id = id - 1000;

PROFIT!



  1. Tilføjelse af data til en Cloud Firestore-database

  2. flette opdatering oracle ude af stand til at få et stabilt sæt rækker

  3. Mister forbindelsen til MySQL efter et stykke tid, og genopretter forbindelsen

  4. er det muligt at vælge EXISTS direkte som en smule?