table : id ,state ,update_date
当state修改时 修改当前的修改时间
网上大部分说什么记录到备份表,然后返写,感觉麻烦,还有什么自治事务 但是不能对当前表操作会造成死锁
红色部分为修改的解决方案.欢迎拍砖,
create or replace trigger service_order_update
after update on service_orderfor each row
declare
begin
if updating then
if :new.state <> :old.state then
update service_order set update_date = sysdate where id =:old.id
end if;
end if;
end service_order_update;
create or replace trigger service_order_update
before update on service_orderfor each row
declare
begin
if updating then
if :new.state <> :old.state then
:new.update_date := sysdate;
end if;
end if;
end service_order_update;
本文介绍了一种使用Oracle触发器来自动更新表中记录的时间戳的方法,仅当指定的状态字段发生变化时才更新时间戳。
2462

被折叠的 条评论
为什么被折叠?



