Oracle中每个记录更新的具有默认值的列

时间:2019-06-04 20:57:28

标签: sql database oracle

我们应该如何在Oracle中的每个更新语句上使用默认值更新列?

像上次更新时间戳一样,每个执行的更新语句都应具有sysdate

1 个答案:

答案 0 :(得分:0)

这是触发器的完美用法:

CREATE OR REPLACE TRIGGER SOME_TABLE_BU
  BEFORE UPDATE ON SOME_TABLE
  FOR EACH ROW
BEGIN
  :NEW.LAST_UPDATED_TIMESTAMP := SYSDATE;
END SOME_TABLE_BU;

您可以使用以下方法轻松扩展此范围以处理插入物:

CREATE OR REPLACE TRIGGER SOME_TABLE_BIU
  BEFORE INSERT OR UPDATE ON SOME_TABLE
  FOR EACH ROW
BEGIN
  IF INSERTING THEN
    :NEW.INSERTED_TIMESTAMP := SYSDATE;
  ELSIF UPDATING THEN
    :NEW.LAST_UPDATED_TIMESTAMP := SYSDATE;
  END IF;
END SOME_TABLE_BIU;

好运。