Sql 每1小时运行一次的Postgres查询
我正在使用带有Dbeaver工具的Postgres。Dbeaver会在一段时间后使连接无效,并且当查询在一段较长时间后被激发时,执行所需的时间会稍长一些 我需要编写一个每1小时运行一次的查询,并对数据库中的任何表执行一个查询,这样我的连接就不会进入空闲阶段 任务调度器在Dbeaver EE中是可用的,它可以完成这项工作,但由于我正在使用它的社区版,我想用上面解释的方法来完成它 我试着写下面的查询。它有一个循环,在循环中,我试图使用pg_sleep保持查询执行,但这不起作用。它给了我以下的错误。另外,我想无限次地运行这个循环 你能帮忙吗Sql 每1小时运行一次的Postgres查询,sql,database,postgresql,dbeaver,Sql,Database,Postgresql,Dbeaver,我正在使用带有Dbeaver工具的Postgres。Dbeaver会在一段时间后使连接无效,并且当查询在一段较长时间后被激发时,执行所需的时间会稍长一些 我需要编写一个每1小时运行一次的查询,并对数据库中的任何表执行一个查询,这样我的连接就不会进入空闲阶段 任务调度器在Dbeaver EE中是可用的,它可以完成这项工作,但由于我正在使用它的社区版,我想用上面解释的方法来完成它 我试着写下面的查询。它有一个循环,在循环中,我试图使用pg_sleep保持查询执行,但这不起作用。它给了我以下的错误。另
do $$
declare
counter integer := 0;
begin
while counter < 24 loop --need to change it to infinite loop
pg_sleep(3600); --wait for 1 hour
perform 'select * from user_roles ur'; --any query to run
counter := counter + 1;
end loop;
end$$;
相反,您可以在linux上使用
cron
,或在windows上使用windows任务调度程序
,
或者您可以使用pgadmin
附带的pgagent
但是,在查询中,您需要选择睡眠(秒)
:
do$$
声明
计数器整数:=0;
开始
而计数器<24循环--需要将其更改为无限循环
选择pg_睡眠(3600)--等待1小时
执行“从a_文件af中选择*”--任何要运行的查询
计数器:=计数器+1;
端环;
完(元);
不要这样做。取而代之的是,使用破损较少的工具。
SQL Error [42601]: ERROR: syntax error at or near "pg_sleep"
do $$
declare
counter integer := 0;
begin
while counter < 24 loop --need to change it to infinite loop
select pg_sleep(3600); --wait for 1 hour
perform 'select * from a_files af '; --any query to run
counter := counter + 1;
end loop;
end$$;