根据特定日期更新postgresql中的列

时间:2014-10-09 02:24:19

标签: sql postgresql

我想知道我是否可以使用PostgrSQL触发器来更新我确实有日期类型列的列,在这个日期我想更新另一个表中的另一列。

使其更清晰

我有两张桌子

Works_locations表

walphid         wnumberid   locationid
DRAR            1012          101
PAPR            1013          105
PAHF            1014          105
ETAR            1007          102
DRWS            1007          102

locationsid属性是指Locations表中的“locid”,它是向下的

locid   locname     
101     Storage 
102     Gallary A   
103     Gallary B   
104     Gallary C   
105     Lobby   

展览桌

exhid       exhname       description       strtdate        endDate
101         Famous         Blah Blah        2013-07-15      2013-10-13

这里是连接展览桌和位置表的桥牌表

locationsid     exhibitid
102             102
103             101
104             103

现在每个展览都有一些作品,应放在其中一个位置表中。

在展览表的'endDate'列中,这是一个日期数据类型,我想更新Works位置表中的'locationid'列以放置在另一个位置。

换句话说。每个展览都有一些作品,这些作品被放置在其中一个地点。在展览的结束日期,我想更改位置,具体来说,我希望将作品退回存储。

知道如何使用postgresql执行此操作?

方面

1 个答案:

答案 0 :(得分:4)

PostgreSQL没有内置的任务调度程序。即使有一个调度程序,它运行的命令也不会成为触发器,它们只是由调度程序运行的程序。

您无法编写在任意时间触发的触发器。

您需要使用cron,任务计划程序,PgAgent或类似程序在所需时间运行语句。或者你可以写一个脚本来检查下一个事件是什么时候,睡到那时,运行所需的命令并将该事件标记为已完成,然后一直睡到下一个事件。