45

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あります。waitfort-sql

ありがとう。

4

4 に答える 4

77

pgsql には t-sql のような waitfor ステートメントがありますか。

はい、pg_sleep :

pg=> SELECT pg_sleep(10);
 pg_sleep 
----------

(1 row)
于 2009-08-26T03:42:54.977 に答える
0

私の知る限りではありません。

単純なスクリプトを介して SQL をパイプし、それから PostgreSQL にパイプして、シェルで何かを行うことができます。たとえば、Perl の場合:

cat regionupdates.sql | perl -e '$i = 1; while(<STDIN>) { $i++; print $_; if ($i % 50 == 0) { sleep 10; } }' | psql -d MYDB -L output.txt

ところで:以前に非常によく似た質問をしたようです。問題を解決した回答を受け入れることができれば幸いです。

開始...50行ごとにコミット

于 2009-08-25T23:26:17.987 に答える