如何在Oracle APEX中更新记录后更改列的值

时间:2014-12-14 21:16:47

标签: oracle triggers oracle-apex

我有一个包含特殊列的表格,例如已插入(日期),已更新(日期),版本(数字)。

已插入 - 创建记录时(Sysdate) 已更新 - 最新记录的更新(Sysdate) 版本 - 默认1.每次更新记录时必须增加1。

如果我通过表单插入/更新数据,如何在Oracle Apex中完成此工作?我不在表单中使用这些列,但是当我更新其他列时,我希望日期/版本自动更新。

以某种方式已插入适用于动态操作"设置页面加载值#34;但它不能与更新一起使用。
我也尝试过触发器,但它也没有帮助。

哪种方式最适合它?

1 个答案:

答案 0 :(得分:0)

您可以为插入创建两个触发器,为更新创建另一个触发器

CREATE OR REPLACE TRIGGER <table_name>_before_insert
BEFORE INSERT
   ON <table_name>
   FOR EACH ROW
    BEGIN
   -- Update create date field to current system date
   :new.<Inserted > := sysdate;
   :new.<Updated> := sysdate; 
   :new.<Version> := 1;
END;


CREATE OR REPLACE TRIGGER <table_name>_before_update
BEFORE UPDATE
   ON <table_name>
   FOR EACH ROW

BEGIN
   -- Update update date field to current system date
   :new.<Updated> := sysdate;
   :new.<Version> := :old.<Version> + 1;
END;