mysql 数据库批量删除同一前缀的数据表
例如我一个名为123的数据库里有一个A前缀和B前缀和C前缀的数据表表太多了备份起来文件太大B前缀的数据表是没用的如何批量删除B前缀的数据表?A前缀和C前缀的都要保留这两个...
例如 我一个名为123的数据库里有一个A前缀和B前缀和C前缀的数据表 表太多了 备份起来文件太大 B前缀的数据表是没用的 如何批量删除B前缀的数据表? A前缀和C前缀的都要保留 这两个都还在用的
如何操作?
补充一下: 如果我要删的数据表前缀为 home
请问leeyige 如何生成语句? 有点看不懂你的那个语句
songtree0119:详细实际操作方法是怎样?
陪你浪漫 : 感谢回答 前提条件还真的是不能访问数据库主机的文件目录
jlake :感谢回答 虽然也是一个办法 可还是觉得不实际 不能达到批量删除的效果 还是得一个表名的复制有点麻烦
leeyige:感谢回复 等待你的下一步解答 展开
如何操作?
补充一下: 如果我要删的数据表前缀为 home
请问leeyige 如何生成语句? 有点看不懂你的那个语句
songtree0119:详细实际操作方法是怎样?
陪你浪漫 : 感谢回答 前提条件还真的是不能访问数据库主机的文件目录
jlake :感谢回答 虽然也是一个办法 可还是觉得不实际 不能达到批量删除的效果 还是得一个表名的复制有点麻烦
leeyige:感谢回复 等待你的下一步解答 展开
展开全部
先把表名列出来
show tables;
然后把你要删除的表名复制下来;
表名中间加逗号
比如
B_table1, B_table2, B_table3 ...
然后在这些表名前面加 DROP TABLE
变成
DROP TABLE B_table1, B_table2, B_table3 ...
执行以上语句即可。
补充:
以上是手动的方法,可以用脚本实现
<?php
//以下参数根据自己的环境设置
$server = "localhost";
$mydb = "dbname";
$user = "root";
$pass = "";
$link = mysql_connect($server, $user, $pass);
$db = mysql_select_db($mydb, $link);
$result = mysql_query("show tables");
$tables = array();
while($row = mysql_fetch_row($result)) {
if(strpos($row[0], 'B_') === 0) //修改前缀在这儿
$tables[] = $row[0];
}
mysql_free_result($result);
print_r($tables);
$sql = 'DROP TABLES '.join(',', $tables);
echo $sql."\n";
if(mysql_query($sql)) {
echo "删除成功\n";
} else {
echo "删除失败\n";
}
mysql_close($link);
?>
把以上代码中的 B_ 修改成实际的前缀,保存成文件,如 del_tables.php,然后执行
php del_tables.php
即可
show tables;
然后把你要删除的表名复制下来;
表名中间加逗号
比如
B_table1, B_table2, B_table3 ...
然后在这些表名前面加 DROP TABLE
变成
DROP TABLE B_table1, B_table2, B_table3 ...
执行以上语句即可。
补充:
以上是手动的方法,可以用脚本实现
<?php
//以下参数根据自己的环境设置
$server = "localhost";
$mydb = "dbname";
$user = "root";
$pass = "";
$link = mysql_connect($server, $user, $pass);
$db = mysql_select_db($mydb, $link);
$result = mysql_query("show tables");
$tables = array();
while($row = mysql_fetch_row($result)) {
if(strpos($row[0], 'B_') === 0) //修改前缀在这儿
$tables[] = $row[0];
}
mysql_free_result($result);
print_r($tables);
$sql = 'DROP TABLES '.join(',', $tables);
echo $sql."\n";
if(mysql_query($sql)) {
echo "删除成功\n";
} else {
echo "删除失败\n";
}
mysql_close($link);
?>
把以上代码中的 B_ 修改成实际的前缀,保存成文件,如 del_tables.php,然后执行
php del_tables.php
即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DROP TABLE `dede_myad`,`dede_myadtype`,`dede_mytag`;
注意表名的小引号是键盘数字那一排的第一个,``~~ 不是单引号
注意表名的小引号是键盘数字那一排的第一个,``~~ 不是单引号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sql里没有.
但是你可以直接进入到Mysql的数据文件夹下
默认是Data的123文件夹中把B前缀的都删掉
每一个表就是一个文件
如:
cd E:\MySQL\MySQL Server 5.0\data\spagobi
del b*.frm;
前提是你能访问到Mysql数据库所在的主机
但是你可以直接进入到Mysql的数据文件夹下
默认是Data的123文件夹中把B前缀的都删掉
每一个表就是一个文件
如:
cd E:\MySQL\MySQL Server 5.0\data\spagobi
del b*.frm;
前提是你能访问到Mysql数据库所在的主机
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用php先把B前缀的记录下来,然后用php批量给删除了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询