Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie tabel
ComBox
post 21.10.2006, 15:35:36
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Bydgoszcz

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


Witam!
Musze co pewien czas usuwac kilkadzisiat tabel, wpisujac recznie "drop table przedrostek_tabela1; drop table przedrostek_tabela2" jest to troche uciazliwe, zwazywszy iz musze usunac okolo 20 - 40 tabel. Czy mozna napisac jakies zapytanie, ktore bedzie usuwac wszystkie tabele danego przedrosta? Tzn. chce usunac wszystkie tabele, ktorych przedrostek = 'przedrostek'. Czy ktos bylby tak mily i by mi pomogl?
Dzieki i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
gszesiek
post 21.10.2006, 15:38:51
Post #2





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 17.09.2006

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


LIKE %część_wspólna_tabel% - może Ci się przydać

oki, to trochę kopałem i znalazłem smile.gif (zaraz wpisuję )

1.
Kod
$tabele = mysql_list_tables( "nazwa_bazy" );
$i = 0;
while ( mysql_fetch_row( $tabele ) ) {
    $tablica_z_nazwami[] = (mysql_tablename( $tabele, $i );
    $i ++;
}

(mamy tablicę z nazwami)
2. w php wybierasz sobie tablice, które pasują do wzorca
3. usuwasz w pętli kolejne tablice

-----------------
również (i chyba tak będzie lepiej) możesz już pod "$i ++;" wybirać na bieżąco pasujące tabele i usuwać je


a tu znalazłem coś takiego
Kod
<?
/*
   Function that returns whole size of a given MySQL database
   Returns false if no db by that name is found
*/

  function getdbsize ( $tdb ) {
   $db_host = 'localhost';
   $db_usr = 'USER';
   $db_pwd = 'XXXXXXXX';
   $db = mysql_connect ( $db_host , $db_usr , $db_pwd ) or die ( "Error connecting to MySQL Server!\n" );
   mysql_select_db ( $tdb , $db );

   $sql_result = "SHOW TABLE STATUS FROM " . $tdb;
   $result = mysql_query ( $sql_result );
   mysql_close ( $db );

   if( $result ) {
       $size = 0;
       while ( $data = mysql_fetch_array ( $result )) {
             $size = $size + $data [ "Data_length" ] + $data [ "Index_length" ];
       }
       return $size;
   }
   else {
       return FALSE;
   }
  }

?>

<?
/*
   Implementation example
*/

  $tmp = getdbsize ( "DATABASE_NAME" );
  if (! $tmp ) { echo "ERROR!"; }
  else { echo $tmp; }
?>


-----------------
jeszcze raz przepraszam za złe naprowadzenie
powodzenia

Ten post edytował gszesiek 21.10.2006, 18:45:34


--------------------
Go to the top of the page
+Quote Post
ComBox
post 22.10.2006, 08:12:07
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Bydgoszcz

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


probowalem, ale wystepuje jakis blad

zapytanie:

  1. DROP TABLE LIKE przedrostek_%

  1. DROP TABLE LIKE 'przedrostek_%'


Niestety nie dzialaja.

OK, dzieki.
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: 19.07.2025 - 06:55