Postgresql: перебор всех записей таблицы в функции

Задача: обновить все записи одной таблицы, на основании данных другой таблицы. Причем условие сложное, которое просто в запрос update from select не впехнешь

Решение: сделаем функцию, которая собственно будет последовательно перебирать таблицу, и обновлять данные

CREATE OR REPLACE FUNCTION public.update_epd_cancel()
	RETURNS int4
	LANGUAGE plpgsql
AS $function$
DECLARE
    crsr CURSOR FOR SELECT * FROM refusals;  -- курсор для запроса
	emp RECORD;
	BEGIN
		 OPEN crsr;  -- открываем курсор
		LOOP
        FETCH crsr INTO emp;  -- извлекаем следующую строку в переменную
        EXIT WHEN NOT FOUND;  -- если строк больше нет — выходим
	    update ls set dt_cancel_epd_bill=emp.dt where ls.id=emp.ls; -- обработка строки
        update ls set dt_cancel_epd_bill=emp.dt where ls.id=emp.ls_epd; -- обработка строки
    END LOOP;
    CLOSE crsr;  -- закрываем курсор
    return 0;
	END;
$function$
;

Calc не работает курсор клавиатуры

Ну на самом деле работает, вот только OpenOffice смотрит состояние клавиши ScrollLock по индикатору на клавиатуре. А в KDE (возможно и в GNOME), по умолчанию этот индикатор «гасится» (чтоб не блазнило видимо) и лампочка на клавиатуре не горит, вне зависимости от состояния кнопки (видимо состояние отслеживается софтово).

Решение: вернуть взад индикацию клавиатуры

P.S. Этот «баг» тянется уже несколько лет, от которого страдают обычные пользователи, и создается негатив. А жаль.




Процедуры в MySQL..

Давно хотел попробовать переложить часть кода и логики на плечи MySQL.. По идее говорят за счет сокращения обмена сетевыми пакетами, скорость выполнения значительно увеличивается. В зависимости от задачи конечно. Ну попробовал.. Не очень понравилось. Писать на этом так называемом языке очень не удобно. Особенно эти «курсоры» в MySQL. В итоге пришел к выводу, что таки да. Смысл писать есть, но только если «очень -очень нада»..

Ниже пример процедуры заполнения таблицы на основании другой..