加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何在不丢弃数据库的情况下删除MySQL数据库中的所有表?

发布时间:2020-12-12 16:55:35 所属栏目:MsSql教程 来源:网络整理
导读:我需要事先删除数据库中的所有表而不知道它们的名字.典型的过程是删除然后重新创建数据库,但这不是一个选项.最好的方法是什么? 解决方法 使用 mysqldump(从 Thingy Ma Jig Blog开始)有一个更简单的bash单线程. mysqldump -u[USERNAME] -p[PASSWORD] --add-dr
我需要事先删除数据库中的所有表而不知道它们的名字.典型的过程是删除然后重新创建数据库,但这不是一个选项.最好的方法是什么?

解决方法

使用 mysqldump(从 Thingy Ma Jig Blog开始)有一个更简单的bash单线程.
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

如果您收到此错误:

ERROR 1217 (23000) at line 1: Cannot delete or update a parent row: 
    a foreign key constraint fails

请尝试以下方法:

(echo 'SET foreign_key_checks = 0;'; 
 (mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | 
     grep ^DROP); 
 echo 'SET foreign_key_checks = 1;') | 
    mysql -u[USERNAME] -p[PASSWORD] -b [DATABASE]

现在它忽略了约束.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读