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

3

我需要一个触发器,在特定表格中的任何插入或更新时触发。同时,在插入或更新期间,触发器将把新行的信用卡号列替换为虚假信息,例如“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个回答

10

使用"before"触发器更容易操作传入的: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 - 你比我快,我正在组织我的答案时你已经发布了! :-) - EdStevens
2
像魔术一样好用!!!我尝试了同样的方法(使用NEW),但它失败了。我想我语法写错了。 - user3547213

0

未经测试:

CREATE OR REPLACE TRIGGER t BEFORE INSERT on ON table1 FOR EACH ROW begin :new.cc_number_field = '11'; END;

PL/SQL 参考 - 触发器


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接