当前位置: 首页 > 知识库问答 >
问题:

还原使用--no-create-info创建的mysqldump并希望跳过当前数据库中不存在的表

左丘曦
2023-03-14

我有一个使用--no-create-info选项创建的mysqldump备份。我想将它还原到一个没有特定表的新数据库(从目标数据库中删除大约50个表,因为它们不再需要)。

因此,我得到的表'table_name'不存在的原因显而易见。

那么MySQL还原到备份文件中没有所有表的数据库的方法是什么。

我可以使用--insert-ignore来避免这种失败,但我怀疑这也可能忽略一些真正的错误,如数据类型不匹配等。

共有1个答案

鄂和璧
2023-03-14

显然,不能向不存在的表中插入行。

要还原转储文件中的数据,您需要首先创建这些表。您可以返回到源MySQL实例,并使用mysqldump--no-data转储这些表定义

如果您不关心数据,并且只想为确实存在的表还原数据,那么您可以在尝试导入该脚本之前过滤掉INSERT语句。

例如,可以使用grep-v消除行。

也可以使用sed删除“--Dumping data for tabletableName”和下一个表之间的行。

如果您不想过滤数据,但又不关心为不存在的表还原数据,则可以使用正确的字段创建虚拟表,但使用BLACKHOLE storage engine定义表,因此插入实际上不会导致保存任何数据。

还有一个选择:使用mysql--force导入转储文件,这样即使在某些插入操作中出错,它也能继续运行。

 类似资料:
  • 日志: 2021-05-09 14:04:19.356错误22211---[nio-8080-exec-2]O.A.C.C.C.[.[.[/].[dispatcherServlet]:servlet.Service()对于路径[]上下文中的servlet[dispatcherServlet]抛出异常[请求处理失败;嵌套异常为java.lang.NullPointerException:无法调用“c

  • 我面临着使用Spring数据JPA存储库将数据保存到数据库的问题。 我的场景是:我使用循环逐个收集和保存数据。收集所有数据需要很多时间。因此,我想将每个记录的数据立即保存到表中并保存到数据库中。我正在使用saveAndFlush方法,但数据并没有立即保存到表中。 我迫不及待地要收集所有数据,因为收集所有数据可能需要一整天。

  • 本教程提供了有关如何使用JDBC应用程序创建数据库的示例。 在执行以下示例之前,请确保您具备以下示例 - 您应该具有管理员权限以在给定模式中创建数据库。 要执行以下示例,您需要将username和password替换为您的实际用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Im

  • 我有一个主类,一个DTO和一个DAO。我想做的是读取数据库表 CUSTOMER(两个字段名称,姓氏),然后将其写入 txt 文件。我似乎无法让它将值存储在 DTO 中,以便我的主类可以获取它。 我的DTO存在两个字段,名和姓,getters和setters。问题出在我的刀与列表上 *请记住我是一名学生。 这是我到目前为止所做的:结果,像这样写入文件:[姓名姓氏,姓名姓氏,]我需要它写入分隔的文件管

  • 问题内容: 我正在尝试使用Microsoft.SqlServer.Management.Smo将数据库从一台服务器还原到另一台服务器。问题是我不断收到错误消息,指出它找不到.MDF文件。这样做的原因是,它试图从它来自的SQL实例名称的数据文件夹中找到它,而不是在另一个SQL实例的数据文件夹中寻找它。有没有一种方法可以告诉它要在哪个文件夹中搜索mdf,而不是假定它是标记到BAK文件的文件夹?真令人沮

  • 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 知道怎样输入命令,便可以访问数据库了。 假定在你的家(你的“动物园”)中有很多宠物,并且你想跟踪关于它们各种类型的信息。你可以通过创建表来保存你的数据并根据所需要的信息装载他们,然后你可以从表中检索数据来回答关于动物不同种类的问题。本节显示如何做到所有这些事情: ·创建数据库 ·创建数据