Question

J'ai une ligne 500000 script 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;

Je veux insérer un délai de 10 secondes toutes les lignes de 50. Est-pgsql une déclaration waitfor comme t-sql.

Merci.

Était-ce utile?

La solution

  

Est-pgsql ont une déclaration waitfor comme t-sql.

Oui, pg_sleep :

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

(1 row)

Autres conseils

Vous pouvez appeler la fonction pg_sleep avec l'instruction PERFORM puisque nous ne se soucient pas des valeurs de retour:

PERFORM pg_sleep(10);

Pas à ma connaissance.

Vous pouvez faire quelque chose dans la coquille, la tuyauterie SQL à travers un script simple, puis dans PostgreSQL. Par exemple. avec Perl:

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

BTW: Je vous vois posée une question très similaire. Ce serait bien si vous pouviez accepter les réponses que vous avez trouvé résolu votre problème:

Begin ... engager toutes les 50 lignes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top