首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在phpmyadmin中清空mysql数据库

问如何在phpmyadmin中清空mysql数据库
EN

Stack Overflow用户
提问于 2015-10-07 09:09:54
回答 2查看 5.1K关注 0票数 1

我想通过删除所有表来清空phpmyadmin中的mysql数据库,但是这会生成外键错误。

一种解决方案是按照正确的顺序删除表,以防止外键错误,但是在phpmyadmin中有什么方法可以自动做到这一点吗?例如,清空数据库的特性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-28 20:05:09

我的回答有点晚了,但很容易,而且很有效:

  • 转到数据库的表/结构视图。
  • 向下滚动到末尾,选择"check all“并选择"with selected”"drop“。
  • 禁用复选框“启用外键检查”。
  • 单击“是”执行查询。

现在有了一个空的数据库(数据库仍然存在,数据库视图说“数据库中找不到表”)。

票数 3
EN

Stack Overflow用户

发布于 2015-10-07 09:19:26

你说清理数据库是什么意思-

  1. 您希望从DB中删除所有表,并希望DB为空。
  2. 或者您希望清除所有数据,但需要DB中的所有表完好无损。

在第一种情况下,更好的选择是删除数据库并重新创建它。

或者,由于任何特定的原因,您不希望删除数据库(就像这样,您将丢失所有触发器/视图等等)。然后首先通过显示表命令获取表,并准备"drop table_name“;在excel或下面的命令中编写脚本,然后通过phpmyadmin执行。

代码语言:javascript
复制
SELECT CONCAT("drop table ",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db';

在第二种情况下,如果您只想清除数据,那么可以按照下面的命令准备截断脚本,然后通过phpmyadmin执行它-

从table_schema _ information_schema.TABLES _type=‘基表’和table _schema=‘my_db’中选择CONCAT(“截断表”、".“、”、“);

注意:在执行删除或截断命令之前执行set foreign_key_checks=0;,在执行后执行set foreign_key_checks=1;以避免与外键相关的问题。

您可以在服务器控制台上执行以下命令。

代码语言:javascript
复制
mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "drop table $table"; done

或

代码语言:javascript
复制
mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "truncate table $table"; done
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32988208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档