如何删除MySQL中的所有表?

时间:2010-02-03 02:46:26

标签: mysql phpmyadmin mysql-management

我不想删除数据库,

因为我没有在自己的机器上托管网站,

删除数据库将需要再次创建它,以及许多设置。

MySQL中是否有可用于删除特定数据库中所有表的命令?

修改

我能做的一切都在 phpMyAdmin

5 个答案:

答案 0 :(得分:34)

你在谈论在phpMyAdmin中这样做。

我只是必须这样做而且我不确定你使用的是什么版本但是如果你滚动到表格列表的底部你可以点击“全部检查”,然后在下拉列表中对于具有“With Selected:”的它,您可以选择“Drop”并清空所有表格。

答案 1 :(得分:7)

  

mysqldump -u [USERNAME] -p [PASSWORD]   --add-drop-table --no-data [DATABASE] | grep ^ DROP | mysql -u [USERNAME]   -p [密码] [数据库]

Here有更多方法可以在不删除数据库的情况下删除所有表。

答案 2 :(得分:5)

您还可以从information_schema数据库生成一个sql文件:

Select concat('DROP TABLE database_name.', table_name,';') from information_schema.TABLES where table_schema='database_name';

这将产生如下输出:

DROP TABLE database_name.table1;
DROP TABLE database_name.table2;
[...]
DROP TABLE database_name.tableN;

答案 3 :(得分:3)

我不知道任何直接适合您的需求。您可以尝试执行以下操作:

运行此命令以显示drop命令:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP


Nex你可以这样做来实际执行drop命令:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP | 
mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

答案 4 :(得分:0)

$q=mysql_query("SHOW TABLES FROM ".SQL_DATABASE_NAME);

while($r=mysql_fetch_assoc($q)){
    mysql_query("DROP TABLE ".$r["Tables_in_".SQL_DATABASE_NAME]); 
}

它对我有用!