我想将几张表中的更改审核到历史记录表中。 我读了一些触发器,问题是我想收到对该表以及后端用户(而不是数据库用户)进行操作的原因。
所以我会喜欢
表1
ID_TABLE_1
FIELD_A
FIELD_B
表2
ID_TABLE_2
FIELD_C
FIELD_D
表格历史记录
TABLE_NAME
RECORD_ID
USER
REASON
OPERATION
在这里寻找最佳方法,正如我所见,我有两个选择:
我可以为保存TABLE_NAME,RECORD_ID和OPERATION的表创建触发器
然后具有更新USER和REASON的功能?
或
创建一个函数来完成所有这些工作吗?
答案 0 :(得分:1)
在触发器中使用诸如INSERTING / UPDATING / DELETING之类的谓词来确定发生哪个DML操作。
尝试一下:
create trigger trg_operation_type
before insert or update
on table_1
for each row
begin
case
when inserting then
--insert to history table
when updating then
--insert to history table
end case;
end;