Konsola ikonaProsty sposób znaleziony na: http://forum.php.pl/index.php?showtopic=115729

Często zachodzi potrzeba usunięcia zduplikowanych rekordów w bazie danych. Przetestowałem masę rozwiązań z indeksami unique itp. ale jedno znalezione na forum php jest najskuteczniejsze  – właśnie przetestowałem je na bazie z ponad 900 tyś rekordów i spisało się znakomicie

Składnia:

CREATE TEMPORARY TABLE tmp SELECT DISTINCT * FROM nazwa-naszej-bazy;
TRUNCATE TABLE nazwa-naszej-bazy;
INSERT INTO nazwa-naszej-bazy SELECT * FROM tmp;
DROP TABLE tmp;

Po kolei działania

1. Utworzenie tymczasowej tabeli tmp i przeniesienie do niej niezduplikowanej zawartości bazy
2. Opróżnienie bazy na której chcieliśmy pozbyć się duplikatów
3. Przeniesienie zawartości z tablei tymczasowej do naszej bazy
4. Usunięcie tymczasowej tabeli

Michał

Informatyk, administrator kochający pisać skrypty w PHP, BASHu, pythonie. Na stronie umieszczam rzeczy przydatne w codziennej pracy tak aby łatwo mi było do nich wrócić

Artykuły autora | Strona www autora

Leave a Reply