如何在phpmyadmin中清空mysql数据库

问题描述 投票:0回答:2

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

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

mysql phpmyadmin
2个回答
4
投票

我的回答有点晚了,但很简单而且有效:

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

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


-1
投票

数据库清理是什么意思-

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

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

或者,如果由于任何特定原因您不想删除数据库(这样您将丢失所有触发器/视图等),那么首先通过 showtables 命令获取要删除的表并准备“drop table 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("截断表",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db';

注意:在执行 drop 或 truncate 命令之前执行

set foreign_key_checks=0;
,执行后执行
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
© www.soinside.com 2019 - 2024. All rights reserved.