在PostgreSQL中根据时间更新行

时间:2011-11-11 06:51:29

标签: sql events postgresql time sql-update

在PostgreSQL中根据时间更新表的最佳方法是什么?

例如,我有一个包含以下记录的数据库。

ColumnA  StartTime  EndTime
123      02:05:01   02:06:01   
456      02:06:01   02:07:01

是否可以根据EndTime列更新ColumnA的值,可能是时间事件?例如,如果服务器的时间是2:06:01,那么值123将增加100.

我尝试使用pgagent,但我认为它不适合特定时间事件(秒),特别是如果数据库有大量行。

您能为此提出解决方案吗?感谢。

1 个答案:

答案 0 :(得分:2)

您希望按服务器时间触发UPDATE 一种方法是为此创建 cronjob 。在Linux计算机上调用crontab -e 作为用户postgres (或任何您想要运行它的用户),并在您选择的时间安排这样的事情:

psql mydb -p5432 -c 'UPDATE tbl SET columna = columna + 100 WHERE columna = 123'
顺便说一句,我建议不要在PostgreSQL中使用混合大小写标识符。