栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL DROP所有表,忽略外键

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL DROP所有表,忽略外键

我发现生成的drop语句集很有用,并建议进行以下调整:

  1. 像这样将生成的drop限制到数据库中:

    SELECT concat(‘DROP TABLE IF EXISTS

    ', table_name, '
    ;’)
    FROM information_schema.tables
    WHERe table_schema = ‘MyDatabaseName’;

注意1:这不会执行DROP语句,只是提供了它们的列表。 您将需要将输出剪切并粘贴到SQL引擎中以执行它们。

注意2:如果您有VIEW,则必须将每个

DROP TABLE
VIEW_NAME
语句`DROP VIEW `VIEW_NAME
手动更正。

  1. 请注意,根据http://dev.mysql.com/doc/refman/5.5/zh-CN/drop-table.html,使用层叠进行删除是没有意义的/具有误导性的:

“ RESTRICT和CASCADE允许简化移植。在MySQL 5.5中,它们什么也不做。”

因此,如果需要,为了使drop语句起作用:

SET FOREIGN_KEY_CHECKS = 0

这将禁用参照完整性检查-因此,完成所需的删除操作后,您将需要使用

SET FOREIGN_KEY_CHECKS = 1
  1. 最终执行应如下所示:

    SET FOREIGN_KEY_CHECKS = 0;
    – Your semicolon separated list of DROP statements here
    SET FOREIGN_KEY_CHECKS = 1;

注意:要使用SELECT输出更容易,mysql -B选项可以提供帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/408295.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号