create or replace trigger tib_ty_temp_info before insert
on ty_temp_info for each row
declare
integrity_error exception;
errno integer;
errmsg char(200);
dummy integer;
found boolean;
begin
-- Column menu_id uses sequence TA_WEB_MENU_SEQ
select SEQUENCE_MSG_SUBJECT.NEXTVAL INTO :new.subject_id from dual;
-- Errors handling
exception
when integrity_error then
raise_application_error(errno, errmsg);
end;
以上代码是在表进行插入时自动获取并生成数据,这段触发器从编程角度看很便捷,但从管理数据库角度来看无疑是不合理的。
数据库在insert into ... select ...from 的备份还原时,触发器会让有些字段值完全刷新成新值。