Kompleksowe rozwiązania dla biznesu

Prosta deduplikacja danych w MySQL

Prosta deduplikacja danych w MySQL

Przy okazji obróbki bazy danych kontrahentów, której dane niestety pochodziły z różnych źródeł, natrafiłem na problem powtarzających się rekordów. Wykorzystując pole NIP, które na szczęście znalazło się w źródłach, wykorzystałem proste zapytanie SQL’owe, żeby pozbyć się dubli z bazy. Utworzyłem unikalny indeks na kolumnę NIP z bazy wraz z magicznym słówkiem IGNORE:

ALTER IGNORE TABLE kontrahenci ADD UNIQUE INDEX(nip);

400 rekordów mniej w moim przypadku…

MySQL usunął każdy zduplikowany rekord, który nastąpił po pierwszym odnalezionym. Inaczej mówiąc zostawił pierwszy, a kolejne oznaczone jako duplicated zostały usunięte.

IGNORE jest tutaj kluczowe. Po szczegóły odsyłam do manuala MySQL.