|
|
|
| Как должен выглядить запрос для удаления таблиц,названия которых похожи на заданное?
Например как удалить все таблицы, в название которых имеется "table". | |
|
|
|
|
|
|
|
для: off
(20.10.2005 в 22:14)
| | Для удаления таблицы предназначен оператор DROP TABLE
но он не позволяет удалять по шаблону, т.е. необходимо указывать имя таблицы tbl явно и точно. | |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 22:33)
| | В учебнике говорится о том, что команда DROP TABLE позволяет удалить одну или множество таблиц, но примеров для удаления множества таблиц одним запросом я так и не нашел. | |
|
|
|
|
|
|
|
для: codexomega
(20.10.2005 в 22:38)
| | Удаление множества таблиц, выполняется просто перечислением их в функции:
DROP TABLE tabl_1, tabl_2, tabl_3
|
В принципе можно в php предварительно сформировать список, какие таблицы нужно удалить, а потом отправлять запрос БД. | |
|
|
|
|
|
|
|
для: napTu3aH
(21.10.2005 в 09:21)
| | Тогда какой командой можно взять названия таблиц имеющихся в БД? | |
|
|
|
|
|
|
|
для: 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>";
}
?>
|
| |
|
|
|
|
|
|
|
для: napTu3aH
(21.10.2005 в 11:17)
| | Конечно подойдет. Ща буду юзать :) | |
|
|
|
|
|
|
|
для: 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);
?>
|
| |
|
|
|