2016-12-30 71 views
0

我有一张表。我正在使用触发器来记录记录的更改。有一个字段名称“updatedBy”,它记录了执行操作的人(例如插入,更新,删除)删除记录时在DELETE触发器中检索deletedBy

插入和更新是正常的,因为我将插入或更新字段与其他参数,例如

INSERT INTO T (P1,UPDATEDBY) SELECT 'HELLO','ME' 
UPDATE T SET P1 ='WORLD', UPDATEDBY = 'ME' 

对于这些操作,我可以找出“ME”已经插入/更新的记录,所以我可以正确地创建日志。但是,如何告诉数据库谁删除了该记录?由于我正在执行

DELETE FROM T WHERE P1='WORLD' 

谢谢。

+0

标题被更新。 – SKLTFZ

+0

您是否有单独的审计表来存储已删除的行? – GurV

+0

我有另一个表来存储完整的操作,但主要的问题是我无法更新记录删除期间updatedBy字段,我必须在记录顶部实现它删除SQL语句 – SKLTFZ

回答

0

,那么你需要一个多表保存活动日志,CRUD(创建,更新,删除)

用于至少3个参数

  • 日期
  • 行动

然后只要您执行CRUD操作或至少删除案例时只插入到此表中

+0

但是这又违反了我原来的设计,如果我创建一个表来存储CRUD,那么我需要在删除操作之上执行它。这与我直接将其插入到日志表中相同(这意味着我不需要为它创建一个表)。我的主要问题是相当可能删除期间updatedBy :) – SKLTFZ

+0

我害怕你不能 –