由于服务器崩溃,我需要将在一段时间内创建的一些行从备份(位于我的本地计算机上)恢复到服务器上的实时数据库。
要选择有问题的行,我打算从备份数据库中执行以下操作:
SELECT *
FROM access AS t1
WHERE AccessId IN (
SELECT AccessId FROM access_completed AS t1
WHERE (TIMEDIFF(CCompleteDateTime, "2011-01-24 02:00:00") < 23 AND TIMEDIFF(CCompleteDateTime, "2011-01-24 02:00:00") > 0)
)
如何将生成的行插入实时数据库?
答案 0 :(得分:6)
您可以在备份上使用SELECT ... INTO OUTFILE
,并使用LOAD DATA INFILE
加载数据。
INTO OUTFILE
将所选数据转储到本地文件,格式为MySQL可以使用LOAD DATA INFILE
解析回来的格式。所以你只需要像这样转储和加载:
SELECT * FROM [rest of your query] INTO OUTFILE '/tmp/outfile'
将outfile复制到其他服务器
在另一台服务器上:
LOAD DATA INFILE /tmp/outfile' INTO TABLE access;
它也适用于FEDERATED
个表。这将允许从主服务器查询备份数据库;所以你可以做INSERT INTO access ... SELECT ... FROM federated_access ...
。