Oracle触发器更新同一个表中的列值

时间:2016-03-03 23:41:49

标签: oracle plsql triggers

我需要一个触发器,它会触发特定表上的任何插入或更新,并且插入或更新时会将新行的信用卡号列替换为虚假的内容,例如“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上。

2 个答案:

答案 0 :(得分:3)

使用"来操作传入的: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;
/

答案 1 :(得分:0)

未经测试:

创建或替换TRIGGER t   之前     INSERT ON ON table1 FOR EACH ROW 开始 :new.cc_number_field = '11'; END;

PL/SQL Reference - Triggers