我可以同时触发“之前”和“之后”事件吗?

时间:2019-02-28 08:10:47

标签: oracle plsql database-trigger

我通过以下代码尝试了上述情况

CREATE OR REPLACE TRIGGER test_bf_af2
AFTER LOGON ON SCHEMA and 
BEFORE LOGOFF ON SCHEMA

BEGIN
  --some logic
END;
/

但给我错误提示

  

错误报告:ORA-04079:触发规范无效

     
      
  1. 00000-“无效的触发器规范”
  2.   
     

*原因:create TRIGGER语句无效。

     

*操作:检查该语句的语法是否正确。

那么,是否可以同时具有两种类型?如果是,我该如何实现?

1 个答案:

答案 0 :(得分:1)

使用常规DML触发器,tt可能在同一触发器中具有多个事件(INSERT,UPDATE)。但是,时间必须相同:之前或之后。

与系统触发器相同。由于Oracle不支持“登录前”或“注销后”(出于明​​显的原因),因此您需要两个单独的触发器。