【问题标题】:How to drop all table in MySQL?如何删除 MySQL 中的所有表?
【发布时间】:2011-01-12 10:58:34
【问题描述】:

我不想删除数据库,

因为我没有在自己的机器上托管网站,

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

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

编辑

我能做的一切都在 phpMyAdmin

【问题讨论】:

    标签: mysql phpmyadmin mysql-management


    【解决方案1】:

    你说的是在 phpMyAdmin 中执行此操作。

    我只需要这样做,但我不确定您使用的是哪个版本,但在我拥有的版本中,如果您滚动到表格列表的底部,您可以点击“检查全部”,然后在下拉菜单中下一步对于具有“With Selected:”的它,您可以选择“Drop”并清空所有表格。

    【讨论】:

    • 这是这个问题的实际答案。
    • 有效!但是我禁用了验证外键以删除所有表!
    【解决方案2】:

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

    Here 有更多方法可以在不删除数据库的情况下删除所有表。

    【讨论】:

    • 当我收到此错误时如何使用您的脚本:无法删除或更新父行:外键约束失败
    • @user2298943 使用这个:mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep -e '^DROP \| FOREIGN_KEY_CHECKS' | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      运行它来显示你的放置命令:

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


      接下来,您可以这样做以实际执行放置命令:

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

      【讨论】:

        【解决方案5】:
        $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]); 
        }
        

        它对我有用!

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            猜你喜欢
            • 2020-06-23
            • 2011-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-12
            相关资源
            最近更新 更多