У меня есть две таблицы.
Таблица A
-------------------------------------------
id | date | shiftId | activityId |
-------------------------------------------
1 2018-09-09 1 100
2 2018-09-09 1 101
Таблица B
------------------------------------------------------------------
id | reading | resourceId |date | shiftId | activityId
------------------------------------------------------------------
1 10.0 10 2018-09-09 1
2 11.0 11 2018-09-09 1
Теперь,Я хочу обновить ActivityId таблицы B из таблицы A, запрашивая таблицу A для shifttid и shiftDate .
Как написать хранимую процедуру для обновления таблицы B в цикле?
Я попробовал запрос ниже.
create or replace FUNCTION Update_TableB_ActivityId()
Returns Void as $$
Declare
rec RECORD;
query text;
activityId integer;
BEGIN
query := 'select * from TableB where "activityId" is null;
FOR rec IN execute query
LOOP
execute 'select "activityId" from TableB where "date"=rec."date"' into activityId;
execute 'Update TableB set "activityId"=activityId where "id"=rec."id"';
END LOOP;
END;
$$ LANGUAGE plpgsql;