-
更新同一张表,
必须是before
,如果是after,会引起死锁.
-
貌似需要加自治事务,PRAGMA AUTONOMOUS_TRANSACTION.
-
不用update更新语句,用:new.字段名赋值即可.
create or replace trigger mdt_server_update_tri
before
insert or update
on mdt_server_info_tracking_t
for each row
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
– 更新时间、IP
:new
.modify_date := sysdate;
:new
.modify_ip := SYS_CONTEXT(‘USERENV’,‘IP_ADDRESS’);
commit;
– 详细记录表
insert into mdt_server_info_detail_t
select * from mdt_server_info_tracking_t where id = :old.id;
commit;
end mdt_server_update_tri;
注意点:更新同一张表,必须是before,如果是after,会引起死锁.貌似需要加自治事务,PRAGMA AUTONOMOUS_TRANSACTION.不用update更新语句,用:new.字段名赋值即可.create or replace trigger mdt_server_update_tribefore insert or updateon mdt_server_info_tracking_tfor each rowdeclarePRAGMA AUTONOMOUS_TRANSA
TRIGGER `
数据库
名`.`
触发器
名` BEFORE/AFTER INSERT/UPDATE/DELETE
ON `
数据库
名`.`
表
名`
FOR EACH ROW BEGIN
-- 逻辑、条件语句
END$$
DELIMITER ;
目的:当
一张
表
中的某个字段值
更新
为特定值时,触发
更新
本...