如何删除MySQL中的所有表?

发布于 2024-08-20 05:39:00 字数 186 浏览 4 评论 0原文

我不想删除数据库,

因为我不在自己的计算机上托管网站,

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

MySQL中有没有一个命令可以用来删除特定数据库中的所有表?

编辑

我能做的一切都在phpMyAdmin

I don't want to drop database,

because I'm not hosting the website on my own machine,

drop the database will require create it again,and many settings.

Is there a command in MySQL that can be used to delete all tables in a specific database?

EDIT

Everything I can do is within a phpMyAdmin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

最后的乘客 2024-08-27 05:39:00

您正在谈论在 phpMyAdmin 中执行此操作。

我只是必须这样做,我不确定您正在使用什么版本,但在我的版本中,如果您滚动到表格列表的底部,您可以单击“全部检查”,然后在旁边的下拉列表中有“选择:”,您可以选择“删除”,它会清空所有表。

You were talking about doing this in phpMyAdmin.

I just had to do this and I'm not sure what version you are using but in the version I have if you scroll to the bottom of the table list you can click "Check All" and then in the drop down next to it that has "With Selected:" you can select "Drop" and it empties all the tables.

笑饮青盏花 2024-08-27 05:39:00

mysqldump -u[用户名] -p[密码]
--add-drop-table --no-data [数据库] | grep ^DROP | mysql -u[用户名]
-p[密码][数据库]

这里还有更多方法可以删除所有表而不删除数据库。

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

Here there are more methods to drop all tables without dropping the database.

余生共白头 2024-08-27 05:39:00

您还可以从 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;

You can also generate a sql file from the information_schema database:

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

This will give an output like:

DROP TABLE database_name.table1;
DROP TABLE database_name.table2;
[...]
DROP TABLE database_name.tableN;
极度宠爱 2024-08-27 05:39:00

我不知道有什么可以直接满足您的需求。您可以尝试执行以下操作:

运行此命令以显示您的放置命令:

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]

I'm not aware of anything direct to suit your needs. You might try doing the following:

Run this to show your drop commands:

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

Nex you can do this to actually execute the drop commands:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
grep ^DROP | 
mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
满天都是小星星 2024-08-27 05:39:00
$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]); 
}

它对我有用!

$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]); 
}

it work for me!

沩ん囻菔务 2024-08-27 05:39:00

如果您的表名只有简单的名称(没有空格或其他特殊字符),则此查询可以为您构建整个 drop 命令:

select concat('drop table ', group_concat(table_name), ';') from information_schema.tables where table_schema='yourdbname';

If your table names have only simple names (no spaces or other special chars) this query could build the whole drop command for you:

select concat('drop table ', group_concat(table_name), ';') from information_schema.tables where table_schema='yourdbname';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文