postgresql 类似 sleep的函数
解决方案 »
- Mysql怎么做冷备份啊?
- mysql 子查询问题 求高人指教 急!!
- mysql 的二进制分发版 的下载链接?
- mysql数据库表结构备份
- PostgreSQL数据库复制
- 删除两个表的问题
- 求助:mysql无法安装成功........
- 通过MYODBC连接mysql,在查询时候中文出错(今晚结贴,参与有分,指点迷津者令有高分相送)……
- innodb_flush_log_at_trx_commit & sync_binlog大家在生产环境中都怎么设置啊?
- 存储过程入参变量不支持".","?"这些英文字符
- 触发器语法错误,不明原因,请指教
- postgresql数据库 select for update 问题
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;
t_girl=# \timing
Timing is on.
t_girl=# select sleep(10);
sleep
-----------------
14:56:59.764049
(1 row)Time: 10000.742 ms
t_girl=#
pg_sleep
----------
(1 row)Time: 5000.962 ms
t_girl=#
下面的这个函数可以用于让服务器进程延时执行:pg_sleep(seconds)pg_sleep 让当前的会话进程休眠 seconds 秒以后再执行。seconds 是一个 double precision 类型的值,所以可以指定带小数的秒数。例如:SELECT pg_sleep(1.5);【注意】有效的休眠时间间隔精度是平台相关的,通常 0.01 秒是通用的。休眠的时间将至少等于指定的时间,也有可能由于服务器荷载较重等原因而比指定的时间长。警告
请确保调用 pg_sleep 的会话没有持有不必要的锁。否则其它会话可能必须等待这个休眠的会话释放所持有的锁,从而减慢系统速度。
注意
[1] 如果操作系统实现了润秒,那么上限是 60 。