Db2:创建一个列,用于存储在同一行中设置值的时间戳

xkrw2x1b  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(126)

我的数据库中有一个布尔列,名为:IS_SUBMITTED,默认情况下设置为False。
我想做的是在数据库中有另一个名为TIME_SUBMITTED的列,默认情况下该列设置为Null,但当IS_SUBMITTED设置为True时,TIME_SUBMITTED将更新为当前时间戳。
这可能实现吗?我想这可能涉及到触发器的使用,但我对Db2相当陌生,我似乎不能让它正常工作。
干杯

tmb3ates

tmb3ates1#

BEFORE UPDATE触发器是您所需要的...
简单的解决方案假设IS_SUBMITTED只从FALSE更改为TRUE一次。

create or replace trigger MYTRIGGER
  before update of IS_SUBMITTED on MYTABLE
  referencing 
    new row as n
  set n.time_submited = current_timestamp
;

如果可以将IS_SUBMITTED更改回false,那么您需要决定如何处理它。在触发器中使用一个带有附加逻辑的复合BEGIN/END语句。我将把它作为练习。
最后请注意,在向Db2询问有关SO的问题时,最好包括您的平台(LUW、z\OS、IBM i)和版本。

相关问题