我需要在数据库中创建一个表,该表包含给定表中出现的所有DML语句的所有历史记录。LOG
表格如下:
id | 事件 | ts | 记录
---|---|---|
1 | 更新 | 2020-01-01 | 记录1
2 | 删除 | 2020-01-02 | 记录2
要检测事件类型,可以使用INSERTING
或UPDATING
(或DELETING
(上下文变量。
顺便说一句,不要在TableA
的触发器中使用SELECT record FROM TableA
,而是使用NEW
上下文(或OLD
用于删除(。
解决方案看起来像这样:
insert into LOG (event, record)
values (case when :inserting then 'insert' when :updating then 'update' end, new.record);