Обновите одну таблицу из другой, выполняя некоторую математику - PullRequest
0 голосов
/ 10 сентября 2018

Postgres 9.6.6, последняя версия Ubuntu LTS.

У меня есть большая главная таблица и маленькая, которая получает данные от внешних датчиков.Каждая запись маленькой имеет идентификатор записи большой.

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)...

Спасибо
Перес

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Вы можете создать триггер .При каждой вставке таблицы 1 запускайте процедуру, которая обновит таблицу 2 требуемыми вычислениями.

0 голосов
/ 10 сентября 2018
update t1
set temp0temp1 = temp0 + temp1
from Table_1 t1 join
  Table_2 t2 on t1.id = t2.Tab1_Id
0 голосов
/ 10 сентября 2018

Вы можете использовать update ... from

UPDATE Table_1 t1
  SET temp0temp1 = t1.temp0 + t2.temp1
  from Table_2 t2 
  WHERE t2.Tab1_Id = t1.Id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...