Mysql 使用表2中更改的值更新表1

Mysql 使用表2中更改的值更新表1,mysql,Mysql,我的数据库中有2个表;天气,天气历史。 两个表都包含以下列:行名称、城市ID、城市名称、温度、描述、速度、日期时间、日期、时间 数据在R数据帧中生成,然后数据帧被写入天气表 天气预报包含一些来自几个不同地点的未来3天的天气预报数据 我想创建一个语句,将更改的数据复制并仅更新到weatherhistorical表中 我试过了 插入到weatherhistorical中 (行名称、城市ID、城市名称、温度、描述、速度、日期时间、日期、时间) 在重复密钥更新时从天气中选择* 语句,但它们不起作用,因为

我的数据库中有2个表;天气,天气历史。 两个表都包含以下列:
行名称、城市ID、城市名称、温度、描述、速度、日期时间、日期、时间

数据在R数据帧中生成,然后数据帧被写入天气表

天气预报包含一些来自几个不同地点的未来3天的天气预报数据

我想创建一个语句,将更改的数据复制并仅更新到weatherhistorical表中

我试过了
插入到weatherhistorical中
(行名称、城市ID、城市名称、温度、描述、速度、日期时间、日期、时间)
在重复密钥更新时从天气中选择*

语句,但它们不起作用,因为表中没有正确的键。datetime不起作用,因为它有重复的值,因为大约有8个城市的数据中有相同的datetime

row_names列不适用于键,因为每次检索天气预报时都会重新生成该列

以下是一些示例数据:


做这件事最好的方法是什么?

我们能简化一下吗?您可以使用
WHERE
子句来标识哪些记录需要迁移吗?如果可以简化,那就太好了。我就是想不起如何做到这一点。我认为你应该跟踪哪些记录被插入。例如,按天分批插入。如果我没有弄错的话,您当前的方法是插入整个表,然后尽量避免重复。如果没有别的,这是浪费。我计划每天运行一到两次-weather是一种临时表,只有批处理数据,每次都会被覆盖。使用如何?通过这种方式,您可以跟踪每一次修订,而不是一天运行两次。