从sql dump部分还原?

时间:2010-08-11 03:51:31

标签: mysql

我有一张7000行的表,
我在这张表中添加了一个新栏目 该表有一个mysql DateTime所以。

当我更新表格以填写此新表时,它更新了日期时间

我在更新之前就进行了一次sql转储,所以现在我需要使用sql转储来恢复日期时间(并且只返回该列)。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

将转储还原到第二个表。从该表中选择ID和日期时间。使用这些结果更新原始表中与您获得的ID相对应的行。

答案 1 :(得分:0)

我有几种方法可以想到这样做。

首先是创建另一个mysql数据库并将转储加载到该数据库中(确保它不会从转储中的use commmand加载到第一个数据库中),然后使用该数据库中的数据构建更新查询第一个。

第二种,更简单,更黑客的方法是在文本编辑器中打开转储,只取出该表,然后根据主键而不是插入来查找和替换该列的更新语句。您需要能够找到并替换模式。

第三种方法是在一个抽象的sql工具中加载转储,让它为你做解析,并从抽象语法树中的数据中写出新的查询。

如果这不是一个实时系统,第四种,又是一种hackish,可能是回滚并重新执行最近的转换(只有它们很简单)。