Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление таблиц имеющих похожее название
 
 автор: off   (20.10.2005 в 22:14)   письмо автору
 
 

Как должен выглядить запрос для удаления таблиц,названия которых похожи на заданное?

Например как удалить все таблицы, в название которых имеется "table".

   
 
 автор: cheops   (20.10.2005 в 22:33)   письмо автору
 
   для: off   (20.10.2005 в 22:14)
 

Для удаления таблицы предназначен оператор DROP TABLE
DROP TABLE tbl

но он не позволяет удалять по шаблону, т.е. необходимо указывать имя таблицы tbl явно и точно.

   
 
 автор: codexomega   (20.10.2005 в 22:38)   письмо автору
 
   для: cheops   (20.10.2005 в 22:33)
 

В учебнике говорится о том, что команда DROP TABLE позволяет удалить одну или множество таблиц, но примеров для удаления множества таблиц одним запросом я так и не нашел.

   
 
 автор: napTu3aH   (21.10.2005 в 09:21)   письмо автору
 
   для: codexomega   (20.10.2005 в 22:38)
 

Удаление множества таблиц, выполняется просто перечислением их в функции:

DROP TABLE tabl_1, tabl_2, tabl_3

В принципе можно в php предварительно сформировать список, какие таблицы нужно удалить, а потом отправлять запрос БД.

   
 
 автор: off   (21.10.2005 в 10:59)   письмо автору
 
   для: napTu3aH   (21.10.2005 в 09:21)
 

Тогда какой командой можно взять названия таблиц имеющихся в БД?

   
 
 автор: napTu3aH   (21.10.2005 в 11:17)   письмо автору
 
   для: off   (21.10.2005 в 10:59)
 

Функция называеться "SHOW TABLES"
Что-то вроде этого подойдет?

<?
$sql
="SHOW TABLES";
$result=mysql_query($sql);
for(
$i=0$i<mysql_num_rows($result); $i++)
{
$f=mysql_fetch_array($result);
echo 
"$f[0]<br>";
}
?>

   
 
 автор: off   (21.10.2005 в 13:45)   письмо автору
 
   для: napTu3aH   (21.10.2005 в 11:17)
 

Конечно подойдет. Ща буду юзать :)

   
 
 автор: off   (21.10.2005 в 19:02)   письмо автору
 
   для: off   (21.10.2005 в 13:45)
 

Все получилось! Вот так:


<?
$sql
="SHOW TABLES"
$result=mysql_query($sql);
for(
$i=0$i<mysql_num_rows($result); $i++) 

$f=mysql_fetch_array($result); 
$table $table.$f[0].",";
}
$exp_str explode(",",$table);
$table "";
for(
$i=0$i<count($exp_str); $i++) 

if (
preg_match("|необходимое название|i",$exp_str[$i])) $table $table.$exp_str[$i].",";

$table=substr($table,0,-1);

//Удаляем таблицы
$sql "DROP TABLE $table";
mysql_query($sql);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования