Mysql 从sql备份文件更新1列
我在一个名为Mysql 从sql备份文件更新1列,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我在一个名为signals的数据库中有一个表srSignals,看起来是这样的: 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 我所有的inse
signals
的数据库中有一个表srSignals
,看起来是这样的:
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
我所有的inserttime
值在发生事故时被重置为1970。幸运的是,我有一个数据库signals
的备份,其中包含正确的inserttime
值(以及相应的id
值)。备份文件名为signals.sql.gz
(显然,gz压缩中包含signals.sql
)
我的问题是:使用phpMyAdmin,如何更新列inserttime
,其中现有表的id
=备份文件的id
。请注意,我不想完全恢复该表,因为在此期间已将其他内容添加到数据库中
我不确定最好的方法是什么——恢复phpMyAdmin的功能?一些奇特的更新/加载
谢谢 将备份还原到其他数据库,然后执行更新:
UPDATE database1.table, database2.table
SET database1.table.field = database2.table.field
WHERE database1.table.idfield = database2.table.idfield
将备份还原到其他数据库,然后执行更新:
UPDATE database1.table, database2.table
SET database1.table.field = database2.table.field
WHERE database1.table.idfield = database2.table.idfield
Jim的答案更好(虽然它不一定是不同的数据库,只是不同的表名)。获取错误“#1054 column database2.table.idfield”不存在于where子句中,但我可以向您保证该列确实存在。我需要在这里使用join语句来实现这一点吗?我最终使用了这个解决方案,但方式略有不同:我从.sql文件中提取了所需的备份表,创建了一个新表,并导入了备份表(相同的数据库),然后运行一个更新命令来解决我的问题:在table1
id
=table2
id
SETtable1
inserttime
=table2
inserttime
吉姆的答案更好(虽然它不必是不同的数据库,只需要不同的表名).getting error“#1054 column database2.table.idfield在where子句中不存在,但我可以向您保证该列确实存在。是否需要在此处使用join语句来实现此功能?我最终使用了此解决方案,但方式略有不同:我从.sql文件中提取了所需的备份表,创建了一个新表,并将RTE备份表(同一数据库),然后运行更新命令来解决我的问题:在table1
id
=table2
id
设置table1
inserttime
table2
inserttime