Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń zduplikowane rekordy bez tworzenia tabeli tymczasowej

Oto rozwiązanie na miejscu (ale nie jednowierszowe)

Sprawdź maksymalny identyfikator:

select max(id) as maxid 
  from shop;

Zapamiętaj tę wartość. Powiedzmy, że równa się 1000;

Wstaw ponownie unikalne wartości, z przesunięciem:

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

Usuń stare wartości:

delete from shop
  where id <= 1000;

Przywróć normalne identyfikatory:

update shop
  set id = id - 1000;

ZYSK!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zapętlić zestaw wyników MySQL więcej niż raz, używając funkcji mysql_*?

  2. Aby przygotować plan dla mojego pierwszego projektu MySQL

  3. Czy MySQL indeksuje kolumny kluczy obcych automatycznie?

  4. Instalacja MySQL

  5. Jak stworzyć sekwencję w MySQL?