Postgresql:如何完成重复查询?

时间:2017-06-27 09:55:55

标签: postgresql repeat

假设我有这样的查询:

SELECT * FROM a WHERE a.Category = 'liquid' ORDER BY a.MeasurementTime DESC;

我希望看到结果进入数据库'live'。

如何为Postresql编写一个查询,该查询将在查询完成后立即重复?

3 个答案:

答案 0 :(得分:6)

您可以在终端中使用\ watch n命令每n秒重新执行一次查询。

示例:

postgre=# SELECT * FROM TABLE WHERE CONDITION
postgre=# \watch 5
-- now the "SELECT * FROM TABLE WHERE CONDITION" is re-executed every 5 seconds

答案 1 :(得分:1)

你无法看到他们的生活'。在返回调用环境之前完成查询。

你可以将它包装在一个cron作业(取决于你的环境)或类似的调度程序中,让它们每分钟运行一次,或者一个函数,并将其添加到pgagent每分钟运行一次。

让dml语句不断运行并不是一个好主意,我不建议它用于性能和表管理。

但是......

在一个函数中,您可以使用pg_sleep创建一个带有wait子句的循环,并且只是没有break子句,但实际上一个工作是最好的方法。

答案 2 :(得分:0)

<main id="container"> <div class="flexbox col-1"> <img src="http://placehold.it/800x400/f00/000?text=1" /> </div> <div class="flexbox col-2"> <img src="http://placehold.it/800x400/0f0/000?text=2" /> </div> <div class="flexbox col-3"> <img src="http://placehold.it/800x400/06f/000?text=3" /> </div> </main>

确保在环境变量中设置watch -n1 'psql -h {ip} {db} {user} -c "select * from condition;"'的密码:

Linux> {user}

不客气