Oracle 触发器在插入或更新时更新字段

Posted

技术标签:

【中文标题】Oracle 触发器在插入或更新时更新字段【英文标题】:Oracle Trigger Updating a field on an Insert or an Update 【发布时间】:2010-12-22 11:10:32 【问题描述】:

出于某种原因,我对如何做这样的事情一头雾水。

我有一张如下所示的表格:

UserID   |  Name   |  DateAdded   |   LastUpated
--------------------------------------------------
1        | James Q | 1/1/2009     |

如果我插入或更新记录,lastupdated 字段应更新为 sysdate。 我将如何去做这样的事情?

【问题讨论】:

【参考方案1】:
CREATE OR REPLACE TRIGGER your_trigger_name
BEFORE INSERT OR UPDATE
ON your_table
FOR EACH ROW
DECLARE
BEGIN
   :new.LastUpdated := sysdate;
END;

试试看。我手头没有 oracle 服务器,但我希望语法正确。

【讨论】:

【参考方案2】:

创建或替换触发器 mytable_bi 在 mytable 上插入之前 对于每一行 开始

:NEW.lastupdated := sysdate();

结束;

创建或替换触发器 mytable_bu 在更新 mytable 之前 对于每一行 开始

:NEW.lastupdated := sysdate();

结束;

【讨论】:

以上是关于Oracle 触发器在插入或更新时更新字段的主要内容,如果未能解决你的问题,请参考以下文章

oracle 触发器插入和更新时,怎么操作

Oracle 触发器将所有插入/更新写入文件

插入或更新销售项目后的 oracle 触发器

触发器处理表更新

在 oracle 中创建一个触发器,它不允许使用 if 条件进行任何插入或更新

oracle触发器自身表更新时,怎么拿到别的表字段数据更新自身表的某个字段?