【问题标题】:create trigger by checking the value of a field being inserted in oralce通过检查在 oracle 中插入的字段的值来创建触发器
【发布时间】:2012-08-09 12:39:56
【问题描述】:

我需要在TABLE1 上创建一个插入前触发器,以便它仅在TABLE1.FIELD1 = 'XYZ' 时将插入TABLE1 的新行的COL2COL3 插入TABLE2。我该如何做到这一点,以便仅在满足条件时触发触发器?

【问题讨论】:

标签: oracle triggers


【解决方案1】:
CREATE OR REPLACE TRIGGER my_trigger
   before insert 
   ON table_1
   FOR EACH ROW
BEGIN
  IF :NEW.FIELD1 = 'XYZ'
  then
    INSERT INTO table_2 (col1, col2) VALUES (:NEW.col1, :NEW.col2);
  END IF;
END;
/

或者a_horse_with_no_name 怎么记,你可以使用WHEN 子句

CREATE OR REPLACE TRIGGER my_trigger
   before insert 
   ON table_1
   FOR EACH ROW
   WHEN (NEW.FIELD1 = 'XYZ') 
BEGIN

    INSERT INTO table_2 (col1, col2) VALUES (:NEW.col1, :NEW.col2);

END;
/

【讨论】:

  • 您可以将该 IF 条件移动到触发器定义中,这样即使列不包含该值也不会触发触发器。
猜你喜欢
  • 1970-01-01
  • 2012-04-18
  • 2017-12-26
  • 2019-09-08
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
相关资源
最近更新 更多