我有一张7000行的表,
我在这张表中添加了一个新栏目
该表有一个mysql DateTime所以。
当我更新表格以填写此新表时,它更新了日期时间
我在更新之前就进行了一次sql转储,所以现在我需要使用sql转储来恢复日期时间(并且只返回该列)。
我该怎么做?
答案 0 :(得分:0)
将转储还原到第二个表。从该表中选择ID和日期时间。使用这些结果更新原始表中与您获得的ID相对应的行。
答案 1 :(得分:0)
我有几种方法可以想到这样做。
首先是创建另一个mysql数据库并将转储加载到该数据库中(确保它不会从转储中的use commmand加载到第一个数据库中),然后使用该数据库中的数据构建更新查询第一个。
第二种,更简单,更黑客的方法是在文本编辑器中打开转储,只取出该表,然后根据主键而不是插入来查找和替换该列的更新语句。您需要能够找到并替换模式。
第三种方法是在一个抽象的sql工具中加载转储,让它为你做解析,并从抽象语法树中的数据中写出新的查询。
如果这不是一个实时系统,第四种,又是一种hackish,可能是回滚并重新执行最近的转换(只有它们很简单)。