【问题标题】:How to change column's value after record is updated in Oracle APEX在 Oracle APEX 中更新记录后如何更改列的值
【发布时间】:2015-02-12 23:14:49
【问题描述】:

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

插入 - 记录的创建时间(系统日期)。
更新 - 最新记录的更新(系统日期)。
版本 - 默认为 1。每次更新记录时必须增加 1。

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

不知何故插入适用于动态操作“在页面加载时设置值”,但不适用于更新
我也尝试过使用触发器,但也没有用。

哪种方法最好?

【问题讨论】:

  • 只要这些列不包含在 APEX 页面上,数据库触发器就可以了。

标签: oracle triggers oracle-apex


【解决方案1】:

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

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多