如何在通过命令行导入mysql转储时跳过已创建的表

如何在通过命令行导入mysql转储时跳过已创建的表,mysql,database,Mysql,Database,导入时是否有方法跳过已创建的表?我试图使用命令提示符导入2GB的数据库,但操作被错误中止。现在,如果我再次导入,它将删除每个表并再次创建它,这将花费很长时间 我想从已创建的导入中跳过这些表,或者可以从中止导入的位置开始导入?我正在使用这个命令 mysql -u root -p my_database_name < db_dump.sql mysql-u root-p我的数据库名称

导入时是否有方法跳过已创建的表?我试图使用命令提示符导入2GB的数据库,但操作被错误中止。现在,如果我再次导入,它将删除每个表并再次创建它,这将花费很长时间

我想从已创建的导入中跳过这些表,或者可以从中止导入的位置开始导入?我正在使用这个命令

mysql -u root -p my_database_name < db_dump.sql
mysql-u root-p我的数据库名称
通过一个过滤器运行转储,该过滤器将每个“创建表”替换为“如果不存在,则创建表”,如中所示

cat db_dump_sql | sed "s/CREATE TABLE /CREATE TABLE IF NOT EXISTS /g" | mysql -uroot -p my_database_name
或者编辑db_dump.sql并以交互方式搜索/替换

  • 将表名重命名为新表名
  • 添加ignore关键字,示例(将ignore插入表中)

  • 如果不存在,你应该用
    create table
    将其转储。是的,我知道Matteo,但从其他人那里获得了转储,现在无法再次创建转储。非常感谢你的回答。现在不可能创建新的转储。