我的数据库中有一个布尔列,名为:IS_SUBMITTED,默认情况下设置为False。我想做的是在数据库中有另一个名为TIME_SUBMITTED的列,默认情况下该列设置为Null,但当IS_SUBMITTED设置为True时,TIME_SUBMITTED将更新为当前时间戳。这可能实现吗?我想这可能涉及到触发器的使用,但我对Db2相当陌生,我似乎不能让它正常工作。干杯
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)和版本。
BEGIN/END
1条答案
按热度按时间tmb3ates1#
BEFORE UPDATE触发器是您所需要的...
简单的解决方案假设IS_SUBMITTED只从FALSE更改为TRUE一次。
如果可以将IS_SUBMITTED更改回false,那么您需要决定如何处理它。在触发器中使用一个带有附加逻辑的复合
BEGIN/END
语句。我将把它作为练习。最后请注意,在向Db2询问有关SO的问题时,最好包括您的平台(LUW、z\OS、IBM i)和版本。