Stránka 1 z 1

Odstranění duplicit z tabulky mariadb databáze

Napsal: pon 08. úno 2016 11:58:33
od RoliD
postup:

Kód: Vybrat vše

create table vycistena like sduplicitama;
alter table vycistena add primary key (sloupec);
insert ignore vycistena select * from sduplicitama;
drop table sduplicitama;
rename table vycistena to sduplicitama;

co se tam děje:
1. vytvoříme kopii naší původní tabulky.
2. následně ji trochu předefinovali
3. pak jsme se do ní pokusili vložit, co se dalo. Jelikož ale nová tabulka nesmí obsahovat duplicitní údaje ve sloupci "sloupec", povede se pokaždé jen takové vložení, které se ještě neopakovalo. Ale, příkaz neskončí na první chybě, naopak pokračuje.
4. nakonec pro pořádek ještě původní tabulku odstraníme a tu novou přejmenujeme zpět na původní

 Tento způsob vyčištění zdvojených (nebo vícenásobných) položek je jeden z nejrychlejších. Příliš jej nespomaluje ani počet duplicitních záznamů, ani  to, kolikrát se jednotlivé hodnoty opakují. Výhodou je rovněž to, že z prvních vyhovoujících záznamů by byly vloženy i údaje z dalších sloupců (jako je naše poznámka).  Před testování vždy zálohujte!