繁体   English   中英

如何在phpmyadmin中清空mysql数据库

[英]How to empty mysql database in phpmyadmin

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

一种解决方案是以正确的顺序删除表以防止外键错误,但是有没有办法在 phpmyadmin 中自动执行此操作? 例如清空数据库的功能?

我的回答有点晚了,但很容易和工作:

  • 转到数据库的表/结构视图。
  • 向下滚动到最后,选择“全部检查”并选择“已选择”“丢弃”。
  • 禁用复选框“启用外键检查”。
  • 单击“是”以执行您的查询。

您现在有一个空数据库(该数据库仍然存在,并且数据库视图显示“在数据库中未找到表”。

您在这里所说的数据库清理是什么意思-

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

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

或者,如果由于任何特定原因您不想删除数据库(因为这样您将丢失所有触发器/视图等),则首先通过 show tables 命令获取要删除的表并准备“删除表 table_name;” 在 excel 中编写脚本或通过以下命令并通过 phpmyadmin 执行。

SELECT CONCAT("drop table ",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db';

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

SELECT CONCAT("truncate table ",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db';

注意:执行set foreign_key_checks=0; 在执行 drop 或 truncate 命令并set foreign_key_checks=1; 执行后避免外键相关问题。

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

mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "drop table $table"; done

或者

mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "truncate table $table"; done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM