我正在尝试在“消息”窗格中显示Postgres 9.3.0中长时间运行的功能的状态信息。 Postgres只在函数执行开始时评估localtime
,而不是在调用值时。它重复输出相同的值。我该如何解决这个问题?
我正在迭代这样的游标:
FOR record IN cursor LOOP
PERFORM otherFunction(<id field from the record>);
If mod(i,100)=0 THEN
RAISE NOTICE '% pct complete',round(i::numeric/recordcount::numeric*100);
RAISE NOTICE '%', localtime;
i=i+1;
END IF;
END LOOP;
谢谢!
答案 0 :(得分:1)
请参阅the user manual for current date/time。
localtime
与current_timestamp
一样,在整个交易中得到修复。
如果您希望每次通话都有新的时间,请使用clock_timestamp
。请注意,与localtime
不同,它会返回timestamp with time zone
,因此您可能希望at time zone
转换它,或投出它。