建议数据库中的事件模式设计

时间:2015-07-30 17:23:05

标签: oracle plsql oracle11g

任何人都可以在oracle中为表中的更改建议一个好的事件模式设计或框架。

更改不仅基于列值更改,还基于业务驱动逻辑。所有日志记录都应由某些事件设置驱动。

最后,我们会根据更改跟踪更改并推动业务逻辑。

我可能说的太高了,抱歉:)

3 个答案:

答案 0 :(得分:1)

假设需要跟踪ColumnA的ColumnA。

  1. 使用列TABLENAME,COLUMNNAME,OLDVALUE,NEWVALUE,DATEANDTIME,PK_SEQ
  2. 创建AUDIT_TRAIL表
  3. 创建一个触发器以轮询TableA以查找ColumnA中的任何更改,并将它们插入AUDIT_TRAIL(PK_SEQ应该是Oracle序列号,DATEANDTIME应该来自sysdate)
  4. 触发器

    之类的东西
    CREATE OR REPLACE TRIGGER trg_table_audit
    before insert or update or delete on tableA REFERENCING NEW AS NEW OLD AS OLD
    for each row
    begin
    if inserting or deleting then
    insert into audittrail (....)
    

答案 1 :(得分:1)

阅读精细手册:Using Triggers to Write Audit Data to a Separate Table

  

您可以使用触发器来补充Oracle数据库的内置审核功能。您创建的触发器将用户操作记录到单独的数据库表。当活动触发触发器时,触发器会在此表中记录操作。当您想要记录自定义信息(如对表的更改前后)时,触发器非常有用。

阅读更多精美的手册:PL/SQL Triggers

  

触发器就像Oracle Database在指定事件发生时自动调用的存储过程。

最重要的是,您可以构建一个启动和关闭触发器的设置引擎。 “业务逻辑”可以稍后读取触发器记录的数据。

我认为你对审计不感兴趣。有关详情,请参阅例如Verifying Security Access with Auditing

答案 2 :(得分:0)

如何开始使用TRIGGERS?然后,从那里,您可以从包体中调用过程/函数来跟踪表上的更改。