Postgresql:如何在完成后立即重复查询?

Postgresql: How to repeat query as soon as finished?

假设我有这样的查询:

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

我想查看输入数据库的结果 'live'。

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

您看不到它们 'live'。查询在返回调用环境之前完成。

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

经常使用 dml 语句 运行ning 并不是一个好主意,出于性能和 table 管理目的,我不推荐它。

然而……

在一个函数中,您可以使用 pg_sleep 创建一个带有等待子句的循环,而不是 break 子句,但实际上,作业是最好的方法。

您可以在终端中使用\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

watch -n1 'psql -h {ip} {db} {user} -c "select * from condition;"'

确保在环境变量中设置 {user} 的密码:

Linux> export PGPASSWORD="password"