Dagger
13.02.2004, 08:29:59
Witam!
Mam problem z baza... poprzedni skrypt nie mial zabezpieczenia przez dodawaniem do bazy kilku tych samych wpisow - przez co teraz baza ma spore rozmiary. Jak wykryc i wykasowac niepotrzebne (powtarzajace sie) wpisy w bazie?
Z gory dzieki za pomoc.
kszychu
13.02.2004, 10:27:32
Jesli te wpisy czyms sie roznia, np id, to wyszukaj wszystkie id dla tego samego wpisu i usuń wszystkie oprócz jednego.
Synaps
13.02.2004, 10:41:33
Użyj składni [sql:1:0c96abf79f]SELECT DISTINCT(pole) FROM ....[/sql:1:0c96abf79f] wyciągnie Ci to unkialne rekordy , zapamiętaj je , wywal stare i zaimportuj zapamietane...
Jednak moja teoria może być zła :? jeśli nie zamiścisz tu struktury
tabeli i rodzaju rekordów , z poprawny rozwiązaniem może być ciężko.
Dagger
13.02.2004, 11:42:06
Ale macie jakies sprawdzone skrypty?
Bo nie chcial bym stracic zawartosci bazy.
kszychu
13.02.2004, 13:07:48
Cytat
Ale macie jakies sprawdzone skrypty?
Bo nie chcial bym stracic zawartosci bazy.
To zrob kopie! Bez kopii nawet sprawdzonym skryptem bym sie nie odwazyl gmerac w produkcyjnej bazie.
Dagger
13.02.2004, 13:36:50
Mam juz kopie ;-) Tylko mimo wszystko nie chcial bym miec balaganu w bazie bo ponowna instalacja tej bazy to jakies 6 godzin roboty
Momo wszystko... moze jednak ktos ma takowy skrypcik? Sprawdzony.
scanner
13.02.2004, 13:40:09
Cytat
ponowna instalacja tej bazy to jakies 6 godzin roboty
Ke?

Cytat
mysql -u user -ppass database < dump.sql
Zajmuje Ci 6 godzin?

?
spenalzo
13.02.2004, 14:01:10
Pierwsze zapytanie
[sql:1:6bc079b160]SELECT nazwa, id, COUNT(*) AS ilosc FROM aaa GROUP BY nazwa
HAVING ilosc>1 [/sql:1:6bc079b160]
i potem w php w pętli usuwasz rekordy, dla id pobranych z bazy.
Oczywiście 'nazwa' to jest nazwa tej kolumny, która sie powtarza.
BTW: sprawdź najpierw phpmyadminie to zapytanie co Ci zwraca.
spenalzo
13.02.2004, 15:34:10
Drugi sposób - tworzysz drugą taką samą tabelę o nazwie np. nowa_tabela
Potem:
[sql:1:070e6993c3]INSERT INTO nowa_tabela SELECT DISTINCT * FROM stara_tabela[/sql:1:070e6993c3]
a potem kasujesz starą, nowej zmieniasz nazwe i tyle.
PS. Google mogą (prawie) wszystko:
http://www.google.com/search?q=how+to+dele...ntries+in+mysql
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.