Массовое переименование таблиц базы данных MySQL

Полезный скрипт на php:

< ?php  
$db_server = "localhost";    // hostname MySQL server  
$db_username = "username";   // username MySQL server  
$db_password = "password";   // password MySQL server  
$db_name = "database";       // database name  
 
$pattern = "pattern_";          // search string  
$new_pattern = "new_pattern_";  // replacement string,   
                                // can be empty  
 
// login to MySQL server  
$link = mysql_connect( $db_server, $db_username, $db_password);  
 
if (!$link)  
{  
  die('Could not connect: ' . mysql_error());  
}  
 
// list all tables in the database containing the search pattern  
$sql = "SHOW TABLES FROM `" . $db_name . "`";  
$sql .= " LIKE '%" . $pattern . "%'";  
 
$result = mysql_query ( $sql, $link );  
if (!$result)  
{  
  die("Invalid query: " . mysql_error( $link ));  
}  
 
$renamed = 0;  
$failed = 0;  
 
while ( $row = mysql_fetch_array ($result) )  
{  
  // rename every table by replacing the search pattern   
  // with a new pattern  
  $table_name = $row[0];  
  $new_table_name = str_replace ( $pattern, $new_pattern, $table_name);  
 
  $sql = "RENAME TABLE `" . $db_name . "`.`" . $table_name . "`";  
  $sql .= " TO `" . $db_name . "`.`" . $new_table_name . "`";  
 
  $result_rename = mysql_query ( $sql, $link );  
  if ($result_rename)  
  {  
    echo "Table `" . $table_name . "` renamed to :`";  
    echo $new_table_name . "`.\n";  
    $renamed++;  
  }  
  else  
  {  
    // notify when the renaming failed and show reason why  
    echo "Renaming of table `" . $table_name . "` has failed: ";  
    echo mysql_error( $link ) . "\n";  
    $failed++;  
  }  
}  
 
echo $renamed . " tables were renamed, " . $failed . " failed.\n";  
 
// close connection to MySQL server  
mysql_close( $link );  
?>

Нашел здесь.

Распечатать Распечатать

Другие записи:

MySQL: сделаем это по-быстрому
Осторожно БОЯН! Сброс root пароля MySQL :)
Оптимизация настроек MySQL
Сброс пароля WordPress в MySQL
Поднимаем TorrentFlux на Ubuntu Server
Баг: двойные ссылки навигации по страницам в WordPress 2.8
Поднимаем Openfire на Debian 5
Полный, доработанный перевод Search Unleashed 0.2.29
Конвертируем IPB 2.3.x в phpBB 3.0.5
Баг: не работает Search Unleashed 1.0.2

  1. Hey, everything above can be done just by SQL :)

  2. Комментарии кода доставляют, особенно «can be empty» ))

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">