延迟或等待声明
我有一个 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;
我想每 50
行插入一个 10
秒的延迟。 pgsql
是否有类似于 t-sql
的 waitfor
语句。
谢谢。
I have a 500,000 line SQL script:
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;
I want to INSERT a delay of 10
seconds every 50
lines. Does pgsql
have a waitfor
statement like t-sql
.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
是的,pg_sleep:
Yes, pg_sleep:
您可以使用
PERFORM
语句调用pg_sleep
函数,因为我们不关心返回值:You could call the
pg_sleep
function with thePERFORM
statement since we don't care about returning values:您可以使用 pg_sleep() 和 pg_sleep_for() 延迟 10 秒,如下所示,根据 延迟执行:
此外,您可以使用
pg_sleep_until()
延迟执行一段时间,如下所示如下图所示:You can use
pg_sleep()
andpg_sleep_for()
to delay 10 seconds as shown below according to Delaying Execution:In addition, you can use
pg_sleep_until()
to delay until some time as shown below:正如pilcrow所说,这是最简单的方法。如果您不想看到结果,只需在运行 pg_sleep 之前关闭显示即可 -->
As pilcrow says that is the easiest way. If you do not want to see the results back, just turn off display before running pg_sleep like this -->
据我所知。
您可以在 shell 中执行某些操作,通过简单的脚本将 SQL 传输到 PostgreSQL。例如 Perl:
顺便说一句:我看到你之前问过一个非常相似的问题。如果您能接受解决问题的答案,那就太好了:
开始...提交每个50 行
Not to my knowledge.
You could do something in the shell, piping your SQL through a simple script and then into PostgreSQL. E.g. with Perl:
BTW: I see you asked a very similar question before. It would be nice if you could accept the answers you found solved your problem:
Begin...commit every 50 rows