【问题标题】:How to delete all the tables in a MySQL database? [duplicate]如何删除 MySQL 数据库中的所有表? [复制]
【发布时间】:2011-06-11 01:14:55
【问题描述】:

可能重复:
Truncate all tables in a MySQL database in one command?

我需要在不知道表名的情况下使用单个命令删除或删除 MySQL 数据库中的所有表。这可能吗?

【问题讨论】:

    标签: sql mysql


    【解决方案1】:
    drop database YOUR_DATABASE;
    /* this will delete all the tables for this database */
    
    create database YOUR_DATABASE;
    /* added back the database namespace */
    

    【讨论】:

    • 需要特定权限才能删除它
    • 好吧,但这不是使用单个命令:)
    • phpadmin 不允许我使用 drop,其他任何东西。
    • 长期以来,我认为这会出于某种原因重置权限! ;_;所有浪费的时间。
    • 我由 phpmyadmin 执行此操作(我检查外键检查是否为假)。因为 您不能总是获得创建数据库的权限。特别是在共享主机环境中。所以在我看来,要做的是从 phpmyadmin 中选择所有表并将其删除。免责声明:愿这个答案 OP 寻找。但不能作为对所有人的通用解决方案提出建议。
    【解决方案2】:

    相当长,但试试这个命令(替换明显的东西之后):

    mysql --user=YOUR_USERNAME --password=YOUR_PASSWORD -BNe "show tables" YOUR_DBSCHEMA_NAME | tr '\n' ',' | sed -e 's/,$//' | awk '{print "SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS " $1 ";SET FOREIGN_KEY_CHECKS = 1;"}' | mysql --user=YOUR_USERNAME --password=YOUR_PASSWORD YOUR_DBSCHEMA_NAME
    

    【讨论】:

    • 不知道为什么你被否决了(我不认为应该允许没有评论!),但这比other linked answers 更好,因为它也处理外键检查.谢谢。
    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多