PostgreSql Обновление RAISE_NOTICE выполняется до ОБНОВЛЕНИЯ - PullRequest
0 голосов
/ 23 марта 2020

У меня есть процедура, которая генерирует контрольную сумму и добавляет ее к переданной ей строке. Я заметил, что RAISE_NOTICE работает больше, чем оператор обновления. Есть идеи, почему это так?

CREATE OR REPLACE PROCEDURE public.validatefarmerid() LANGUAGE 'plpgsql'

AS $BODY$

DECLARE
final_id        CHAR VARYING;
Vid_generated   CHAR VARYING;
Sno             BigInt;
T               BIGINT=1000001;
PK_Code int;
checksum_char char(1);

DECLARE 
C1 CURSOR
FOR SELECT SrNo,id_generated  FROM  GeneratedFarmerID WHERE FarmerID IS NULL and 
COALESCE(AssignedToState,0)=0;

BEGIN   
WHILE T<5000000 LOOP
INSERT INTO GeneratedFarmerID(ID_GENERATED) VALUES(CEILING(random()*100000000000));
T:=T+1;
END LOOP;

FOR C2 IN C1 LOOP

Sno:=c2.SRno;
Vid_generated:=CAST(c2.id_generated AS VARCHAR);
PK_Code=SP_Varoff(CAST(Vid_generated AS BIGINT));
checksum_char:=cast(PK_Code as char(1)); --checksum using verhoeff algorithm.       
final_id:=CAST(Vid_generated AS VARCHAR)||checksum_char; 
update GeneratedFarmerID set farmerid=final_id where Srno=Sno;   
RAISE NOTICE 'Final ID:%',final_id;
END LOOP;

END;
$BODY$;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...