【问题标题】:Oracle trigger to update a column value in the same tableOracle触发器更新同一张表中的列值
【发布时间】:2016-06-17 13:17:59
【问题描述】:

我需要一个触发器,该触发器将在特定表上的任何插入或更新时触发,并且在插入或更新时会将新行的信用卡号列替换为虚假内容,例如“1111 1111 1111 1111”

这是我做的,但它似乎不起作用。

CREATE or REPLACE TRIGGER trigger_name  AFTER INSERT ON table1
FOR EACH ROW

BEGIN
update table1 set cc_number_field = '11';
END;

如果这很重要,我会使用 Oracle 10。

【问题讨论】:

    标签: oracle plsql triggers


    【解决方案1】:

    使用“之前”触发器来操作传入的:NEW 行要容易得多:

    CREATE OR REPLACE TRIGGER table1_cc_trigger
    BEFORE INSERT OR UPDATE ON table1
    FOR EACH ROW
    BEGIN
        :NEW.cc_number_field := '1111 1111 1111 1111';
    END;
    /
    

    【讨论】:

    • Mureinik - 你打败了我 - 在我整理答案时发布! :-)
    • 像魔术一样工作!!!我尝试了相同的方法(使用 NEW),但它被炸毁了。我想我的语法错误。
    【解决方案2】:

    未测试:

    创建或替换触发器 t 前 INSERT on table1 FOR EACH ROW 开始 :new.cc_number_field = '11'; 结束;

    PL/SQL Reference - Triggers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多