Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
ComBox
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
gszesiek
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
ComBox
probowalem, ale wystepuje jakis blad

zapytanie:

  1. DROP TABLE LIKE przedrostek_%

  1. DROP TABLE LIKE 'przedrostek_%'


Niestety nie dzialaja.

OK, dzieki.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.