Postgres 9.6.6,最新的Ubuntu LTS。
我有一个大的主表和一个小的主表,它们从外部传感器接收数据。小记录的每个记录都有大记录的记录ID。
Table_1 Table_2
id temp0 temp0temp1 temp1 Tab1_Id
1 3 0 35 2
2 5 0 15 3
3 8 0 75 1
4 9 0 45 4
5 3 0 .some
6 8 0
7 2 0
.tens of thousand...
我正在寻找一种有效的解决方案来更新大型记录的每条记录,并进行一些数学运算,例如:
Table 1 (after)
id temp0 temp0temp1
1 3 78
2 5 40
3 8 23
4 9 54
5 3 0
6 8 0
7 2 0
类似于:
UPDATE Table_1
SET temp0temp1 = Table_1.temp0 + (SELECT temp1
FROM Table_2
WHERE table_2.Tab1_Id = Table_1.Id)...
谢谢
佩雷斯
答案 0 :(得分:1)
您可以使用update ... from
UPDATE Table_1 t1
SET temp0temp1 = t1.temp0 + t2.temp1
from Table_2 t2
WHERE t2.Tab1_Id = t1.Id
答案 1 :(得分:0)
您可以创建一个trigger。在表1的每个插入上运行一个过程,该过程将用所需的计算更新表2。