Plsql 如果另一列为空,则使用触发器修改一列

Plsql 如果另一列为空,则使用触发器修改一列,plsql,Plsql,在我的系统中,我们根据设备状态生成报警别名,因此它对某些数据有效,但对所有对象无效。因此,我找到了一种解决方案,例如,如果该设备在报警别名列中没有任何值,那么我将尝试更新该对象的上次修改日期,下次运行时,它将生成报警别名。 所以现在我想写一个触发器,用于在alarms alias filled为空时更新last modified date列。 请建议或让我知道如何在plsql中实现它。您的问题有点模糊,但如果您使用的是单个表,请尝试以下方法: CREATE OR REPLACE TRIGGER

在我的系统中,我们根据设备状态生成报警别名,因此它对某些数据有效,但对所有对象无效。因此,我找到了一种解决方案,例如,如果该设备在报警别名列中没有任何值,那么我将尝试更新该对象的上次修改日期,下次运行时,它将生成报警别名。 所以现在我想写一个触发器,用于在alarms alias filled为空时更新last modified date列。
请建议或让我知道如何在plsql中实现它。

您的问题有点模糊,但如果您使用的是单个表,请尝试以下方法:

CREATE OR REPLACE TRIGGER myschema.activity_log_t1
   BEFORE INSERT or update
   ON myschema.activity_log
   REFERENCING NEW AS new OLD AS old
   FOR EACH ROW
DECLARE
/******************************************************************************
   NAME:       activity_log_t1
   PURPOSE:    Set default field values in activity_log table
   Modified:   2016.02.09 - BFL Created
******************************************************************************/
BEGIN
   IF :new.alarm_alias IS NULL
   THEN
      :new.modified_date   := SYSDATE;
   END IF;
END activity_log_t1;
/

如果发布表结构或DDL语句,将使帮助变得更简单