MySQL导入 - 如果存在行,如何忽略Drop表?

 贝贝2602932923 发布于 2023-02-10 15:36

我使用mysqldump将2个相同的数据库(表的名称和结构相同)导出为两个.sql文件.我想将它们合并到一个文件中.但是,两个数据库在每个表之前都有一个"Drop table"行.这意味着如果我导入db1然后导入db2,则在导入db2表之前会删除db1表.

文件很大,我无法在编辑器中打开它们.此外,每个数据库中有50个表.

如何在mysql导入期间忽略Drop table命令?

2 个回答
  • 您只需--skip-add-drop-table在使用时添加选项即可mysqldump.

    $ mysqldump --databases --skip-add-drop-table -u root db1 > /tmp/qqq.2
    

    所以,就没有DROP TABLE IF EXISTSsql文件中.

    请参阅--skip-add-drop-table上的mysql文档

    2023-02-10 15:38 回答
  • 如果您不想再次进行转储并且使用Linux,则可以使用:

    awk '!/^DROP TABLE IF EXISTS/{print}' <dump.file> | mysql <db_name>
    

    如果要再次转储数据,则应传递--skip-add-drop-table给mysqldump实用程序.

    2023-02-10 15:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有