简体   繁体   English

Oracle触发器-新插入记录的更新列

[英]Oracle trigger - update column on newly inserted record

In My Oracle (Express) DB I have a table with a column, named created (date type). 在My Oracle(Express)DB中,我有一个带有列的表,该列名为created (日期类型)。
What I am trying to do, is to create a trigger that will update that column after an update or insert, was done, with SYSDATE . 我要尝试做的是创建一个触发器,该触发器将在完成更新或插入后使用SYSDATE更新该列。

My sql (for insert only, I know, it fails anyway) is: 我的SQL(我只知道用于插入,无论如何它都会失败)是:

CREATE OR REPLACE TRIGGER  "VIRTUAL_COUNTERS_NEW" 
AFTER
insert on "VIRTUAL_COUNTERS"
begin
new.updated := SYSDATE
end;
/
ALTER TRIGGER  "VIRTUAL_COUNTERS_NEW" ENABLE
/

You need to prefix new with a colon character and add for each row so that the update is for each row in case of multiple rows insert: 您需要在new前面加上冒号字符并为每行添加以便在多行插入的情况下为每行进行更新:

CREATE OR REPLACE TRIGGER  VIRTUAL_COUNTERS_NEW
BEFORE
insert on VIRTUAL_COUNTERS
FOR EACH ROW
begin
  :new.updated := SYSDATE;
end;
/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM