我们遇到了一个问题,即某人意外地在特定客户的表格中覆盖了某个字段,因此我们已将备份恢复到单独的数据库。
我正在尝试编写一个查询,该查询将从备份版本中获取一个字段,并用它覆盖实时版本。
我在想:
UPDATE live.orders
SET live.orders.price = backup.orders.price
WHERE live.orders.id = backup.orders.id
AND live.orders.date > '2017-01-01 00:00:00'
这是否会产生预期的效果:将实时数据库中的价格字段替换为今年所有订单地点从备份中恢复的内容?
另外,无论如何都要测试它并在实际更改表之前查看输出吗?
由于
答案 0 :(得分:1)
似乎您需要基于联接的更新
UPDATE live.orders
JOIN backup.orders ON live.orders.id = backup.orders.id
SET live.orders.price = backup.orders.price
WHERE live.orders.date > '2017-01-01 00:00:00'