Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于特定日期更新postgresql中的列_Sql_Postgresql - Fatal编程技术网

基于特定日期更新postgresql中的列

基于特定日期更新postgresql中的列,sql,postgresql,Sql,Postgresql,我想知道我是否可以使用触发器和PostgrSQL来更新一个列,其中我确实有一个日期类型的列,并且在这个日期我想更新另一个表中的另一个列 更清楚地说 我有两张桌子 工程地点表 walphid wnumberid locationid DRAR 1012 101 PAPR 1013 105 PAHF 1014 105 ETAR 1007

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

更清楚地说

我有两张桌子

工程地点表

walphid         wnumberid   locationid
DRAR            1012          101
PAPR            1013          105
PAHF            1014          105
ETAR            1007          102
DRWS            1007          102
locationsid属性引用位置表中的“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 locations表中的“locationid”列以放置在另一个位置

换言之,每个展览都有一些作品,这些作品被放置在其中一个位置。在展览结束之日,我想更改位置,特别是,我想把作品放回仓库

你知道我将如何使用postgresql执行此操作吗


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

您不能编写在任意时间触发的触发器


您需要使用
cron
、任务调度程序、PgAgent或类似工具在所需时间运行语句。或者您可以编写一个脚本,检查下一个事件何时发生,在此之前休眠,运行所需命令并将该事件标记为已完成,然后休眠到下一个事件。

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

您不能编写在任意时间触发的触发器


您需要使用
cron
、任务调度器、PgAgent或类似工具在所需时间运行语句。或者您可以编写一个脚本,检查下一个事件何时发生,在此之前休眠,运行所需命令并将该事件标记为已完成,然后休眠到下一个事件。

您可以编写一个触发器来更新“工作位置”“当”展览“结束日期”更改时。下面是一些例子。(向下滚动。)不清楚a)您要更改“工作地点”中的哪一行,b)当前日期(或某个当前日期列)与此有何关系。我只想知道如何基于当前日期执行此操作。我以前确实看过那一页,但没有找到答案。你的问题在美国英语中没有意义。基于当前日期的短语不清楚。您需要更具体地说明a)要更新哪些表和列,b)要更新哪些值,以及c)何时更新。好的,我将进行一些更改以澄清如果您希望在“endDate”中存储的值上或之后发生某些事情,您不需要触发器。触发器仅在数据发生更改时运行。相反,您需要手动运行UPDATE语句,或由cron运行,或由pg_代理运行。您可以编写触发器,在“展览”“结束日期”更改时更新“工作地点”。下面是一些例子。(向下滚动。)不清楚a)您要更改“工作地点”中的哪一行,b)当前日期(或某个当前日期列)与此有何关系。我只想知道如何基于当前日期执行此操作。我以前确实看过那一页,但没有找到答案。你的问题在美国英语中没有意义。基于当前日期的短语不清楚。您需要更具体地说明a)要更新哪些表和列,b)要更新哪些值,以及c)何时更新。好的,我将进行一些更改以澄清如果您希望在“endDate”中存储的值上或之后发生某些事情,您不需要触发器。触发器仅在数据发生更改时运行。相反,您需要手动运行UPDATE语句,或者由cron运行,或者由pg_代理运行。非常感谢。我现在明白了,非常感谢。我现在明白了