我不想删除数据库,因为我没有在自己的机器上托管网站,删除数据库将需要重新创建数据库,并需要进行许多设置。MySQL中是否有一个命令可用于删除特定数据库中的所有表?
编辑
我能做的一切都在phpMyAdmin中
jm2pwxwz1#
您在讨论在phpMyAdmin中执行此操作。我只是不得不这样做,我不知道你使用的是什么版本,但在我的版本中,如果你滚动到表列表的底部,你可以点击“检查所有”,然后在旁边的下拉菜单中,有“与选定:“你可以选择“删除”,它清空所有的表。
wlwcrazw2#
您还可以从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;
whlutmcx3#
mysqldump -u[用户名] -p[密码] --添加/删除表--无数据[数据库]| grep ^删除|mysql -u[用户名] -p[密码] [数据库]Here有更多的方法可以删除所有表而不删除数据库。
bt1cpqcv4#
我不知道有什么能直接满足你的需求。你可以试着做以下事情:运行以下命令以显示您的drop命令:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP
接下来,您可以这样做以实际执行drop命令:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
chhkpiq45#
$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]); }
对我有用!
m2xkgtsf6#
如果您的表名只有简单的名称(没有空格或其他特殊字符),则此查询可以为您构建整个drop命令:
select concat('drop table ', group_concat(table_name), ';') from information_schema.tables where table_schema='yourdbname';
6条答案
按热度按时间jm2pwxwz1#
您在讨论在phpMyAdmin中执行此操作。
我只是不得不这样做,我不知道你使用的是什么版本,但在我的版本中,如果你滚动到表列表的底部,你可以点击“检查所有”,然后在旁边的下拉菜单中,有“与选定:“你可以选择“删除”,它清空所有的表。
wlwcrazw2#
您还可以从information_schema数据库生成sql文件:
这将给予如下输出:
whlutmcx3#
mysqldump -u[用户名] -p[密码] --添加/删除表--无数据[数据库]| grep ^删除|mysql -u[用户名] -p[密码] [数据库]
Here有更多的方法可以删除所有表而不删除数据库。
bt1cpqcv4#
我不知道有什么能直接满足你的需求。你可以试着做以下事情:
运行以下命令以显示您的drop命令:
接下来,您可以这样做以实际执行drop命令:
chhkpiq45#
对我有用!
m2xkgtsf6#
如果您的表名只有简单的名称(没有空格或其他特殊字符),则此查询可以为您构建整个drop命令: