我有一个500,000行的SQL脚本:
update users set region_id = 9814746 where id = 101 and region_id is null;
update users set region_id = 9814731 where id = 102 and region_id is null;
update users set region_id = 3470676 where id = 103 and region_id is null;
我希望每10
行插入50
秒的延迟。 pgsql
是否有waitfor
语句,如t-sql
。
感谢。
答案 0 :(得分:32)
答案 1 :(得分:5)
您可以使用pg_sleep
语句调用PERFORM
函数,因为我们并不关心返回值:
PERFORM pg_sleep(10);
答案 2 :(得分:0)
据我所知。
你可以在shell中做一些事情,通过一个简单的脚本然后进入PostgreSQL来管理你的SQL。例如。与Perl:
cat regionupdates.sql | perl -e '$i = 1; while(<STDIN>) { $i++; print $_; if ($i % 50 == 0) { sleep 10; } }' | psql -d MYDB -L output.txt
顺便说一句:我看到你之前问了一个非常相似的问题。如果您能接受解决问题的答案,那就太好了:
答案 3 :(得分:0)
如pilcrow所说,这是最简单的方法。如果您不想看到结果,只需在运行pg_sleep之前关闭显示--
\pset tuples_only on
select pg_sleep(10) ;
\pset tuples_only off