【发布时间】:2018-02-06 09:38:36
【问题描述】:
我在更新数据时遇到问题。所以事情是这样的: 1)我将与每日气候数据相对应的数据加载到 mysql 转储中。我有 18 个包含每日数据的表(每个参数一个表)。我的目标是将它们合并到一个表中。
表 1
station| dayOfYear| temp|
1| 20010101| 2|
2| 20010101| 3|
3| 20010101| 4|
1| 20010102| 3|
2| 20010102| 4|
3| 20010102| 4|
表 2
station| dayOfYear| humidity
1| 20010101| 20|
2| 20010101| 35|
3| 20010101| 100|
1| 20010102| 14|
2| 20010102| 40|
3| 20010102| 80|
2)正如您在示例 (table1 和 table2) 中看到的,所有这些表共享 "station" 和 "dayOfYear" 列。因此,
3) 我最初的计划是,一旦上传了每个转储,我将在我的“TargetTable”中更新(我之前创建过,它包含每个参数一列和共享列“Station”和“dayOfYear”)每个转储,所以最后我会有一张表,其中包含每天每个参数的数据。 我的计划没有奏效,我有超过 200 万行,查询持续了几个小时运行,最后连接丢失了。所以我会得到这样的东西:
目标表
站|dayOfYear|温度|湿度
1| 20010101| 2| 20
2| 20010101| 3| 35
3| 20010101| 4| 100
1| 20010102| 3| 14
2| 20010102| 4| 40
3| 20010102| 4| 80
由于我的计划(通过连接获取 TargetTable)不起作用,我想知道从一开始,在上传 csv 时,是否可以在 mysql 中将列添加到“Targettable”。
类似:
LOAD DATA LOCAL
INFILE 'C:/Daily/temp.csv'
INTO TABLE TargetTable
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
optionally ENCLOSED BY '"'
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 rows( stn, dayOfYear, temp, humidity);
LOAD DATA LOCAL
INFILE 'C:/Daily/hum.csv'
INTO TABLE TargetTable
SET
humidity= ...?? **what would come here??**
你知道怎么做吗?您对如何处理此问题有任何其他建议。 仅供参考。我已经修改了运行查询的时间。
【问题讨论】: