在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,但我认为它不适合特定时间事件(秒),特别是如果数据库有大量行。
您能为此提出解决方案吗?感谢。
答案 0 :(得分:2)
您希望按服务器时间触发UPDATE
一种方法是为此创建 cronjob 。在Linux计算机上调用crontab -e
作为用户postgres (或任何您想要运行它的用户),并在您选择的时间安排这样的事情:
psql mydb -p5432 -c 'UPDATE tbl SET columna = columna + 100 WHERE columna = 123'
顺便说一句,我建议不要在PostgreSQL中使用混合大小写标识符。