postgresql  类似 sleep的函数

解决方案 »

  1.   

    本省没有好像create or replace function sleep (integer) returns time as '
    declare
    seconds alias for $1;
    later time;
    thetime time;
    begin
    thetime := timeofday()::timestamp;
    later := thetime + (seconds::text || '' seconds'')::interval;
    loop
    if thetime >= later then
    exit;
    else
    thetime := timeofday()::timestamp;
    end if;
    end loop;return later;
    end;
    ' language plpgsql;
      

  2.   

    http://www.issociate.de/board/post/130019/sleep_function.html
      

  3.   

    测试
    t_girl=# \timing
    Timing is on.
    t_girl=# select sleep(10);
          sleep      
    -----------------
     14:56:59.764049
    (1 row)Time: 10000.742 ms
    t_girl=# 
      

  4.   

    刚查到,原来是有的t_girl=# select pg_sleep(5);
     pg_sleep 
    ----------
     
    (1 row)Time: 5000.962 ms
    t_girl=# 
      

  5.   

    9.9.5. 延时执行
    下面的这个函数可以用于让服务器进程延时执行:pg_sleep(seconds)pg_sleep 让当前的会话进程休眠 seconds 秒以后再执行。seconds 是一个 double precision 类型的值,所以可以指定带小数的秒数。例如:SELECT pg_sleep(1.5);【注意】有效的休眠时间间隔精度是平台相关的,通常 0.01 秒是通用的。休眠的时间将至少等于指定的时间,也有可能由于服务器荷载较重等原因而比指定的时间长。警告 
    请确保调用 pg_sleep 的会话没有持有不必要的锁。否则其它会话可能必须等待这个休眠的会话释放所持有的锁,从而减慢系统速度。
     注意
    [1] 如果操作系统实现了润秒,那么上限是 60 。