2012-09-18 35 views
0

专栏中,我有一个表srSignals,在一个名为signals数据库,看起来像这样:更新1个从SQL备份文件

inserttime
animal  inserttime    id 
dog   1970-00-00 00:00:00  3042 
cat   1970-00-00 00:00:00  3041 
monkey  1970-00-00 00:00:00  3040 
hamster  1970-00-00 00:00:00  6 

都得到了恢复到1970年的事故。幸运的是,我有一个备份数据库signals与正确的inserttime值(和相应的id值)。该备份文件被称为signals.sql.gz(与gz压缩中的signals.sql显然)。

我的问题是这样的:使用phpMyAdmin,我怎么能updateinserttime在现有表的id =备份文件的id。请注意,我不想完全恢复该表,因为其他内容在此期间已添加到数据库中。

我不确定最好的方式来获得这个 - 恢复phpMyAdmin的功能?一些奇特的更新/加载?

谢谢!

回答

4

将备份还原到不同的数据库,然后做一个更新:

UPDATE database1.table, database2.table 
SET database1.table.field = database2.table.field 
WHERE database1.table.idfield = database2.table.idfield 
+0

吉姆的回答是更好(尽管它并不必须是不同的数据库,不同的只是表名)。 –

+0

出现错误'#1054列database2.table.idfield不存在于where子句',尽管我可以向你保证该列确实存在。我需要在这里使用联合声明来完成这项工作吗? – themerlinproject

+3

我以一种稍微不同的方式结束了这个解决方案:我从.sql文件中提取我需要的备份表,创建一个新表并导入备份表(相同的数据库),然后运行UPDATE命令解决我的问题:UPDATE table1 INNER JOIN table2 ON'table1'.'''''''''.''' SET'''''''插入时间'''''''''''''插入时间' – themerlinproject