Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mySql] Kasowanie tabel z prefixem, masowo :)
dopy
post 23.09.2006, 14:30:31
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

Ostrzeżenie: (0%)
-----


Witam,

Czy język mySQL pozwala na usunięcie z bazy wszystkich tabel z danym prefixem ? Chodzi o coś a'la DROP TABLE prefix_% winksmiley.jpg Patrzyłem w manual mySQL jednak jakoś nie lubie tego manuala i ciężko szuka mi się tam informacji. Jeśli jednak język sql nie oferuje takiego cuda to w jaki sposób byście to rozwiązali ? Przyjmijmy że nie wiem jakie są tabele, znam tylko prefix - wtedy wyszukiwać tabele, wrzucać do tablicy i kolejno DROP'ować ? Ale przy takim postępowaniu, duża ilość tabel = masa zapytań do sql.

Pozdrawiam.


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
nospor
post 23.09.2006, 14:51:57
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale przy takim postępowaniu, duża ilość tabel = masa zapytań do sql.
hmmm, no to policzmy:

Cytat
wtedy wyszukiwać tabele

= 1 zapytanie

Cytat
kolejno DROP'ować
drop table umozliwia wpisanie kilku tabel do zapytania
= 1 zapytanie

wynik calkowity:
= 2 zapytania do bazy

smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dr_bonzo
post 23.09.2006, 15:37:04
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


  1. SHOW TABLES LIKE "prefix_%"

nie znalazlem czy da sei polaczyc ten wynik ", " i wrzucic do DROPa.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
dopy
post 23.09.2006, 16:27:57
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

Ostrzeżenie: (0%)
-----


Yhym, ok, a ile max uciągnie tabel do usunięcia za jednym razem ? Powiedzmy jak dam mu 1000 tabel po przecinku, to nie będzie robił mi problemów ?


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
nospor
post 23.09.2006, 16:34:15
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




sprawdź winksmiley.jpg

Mysql ma jakies ograniczenie na dlugosc zapytania, ale jaka to dlugosc to nie wiem.
Jesli to bedzie naprawde wiele tabel, to porcjuj je, np. co 250 tabel. Bedziesz mial wowczas 4 + 1 = 5 zapytan smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dopy
post 23.09.2006, 17:04:38
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function usun_tabele_pref($prefix) {
  3. $usun=array(); $ile=0;
  4. $xx=mysql_query('show tables like "'.$prefix.'_%"');
  5. while($xxx = mysql_fetch_array($xx)) {
  6. $usun[]=$xxx[0]; $ile++;
  7. }
  8. $tabele=implode(", ",$usun);
  9. mysql_query("DROP TABLE ".$tabele);
  10. return $ile;
  11. }
  12. ?>


Taka mała funkcja dla leniwych winksmiley.jpg Zobaczymy jak sobie poradzi z dużymi bazami winksmiley.jpg To co zwraca to oczywiście ilość usuniętych tabel smile.gif

Pozdrawiam.


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:25