触发更改日志。如何提高?

时间:2017-06-29 11:49:08

标签: database postgresql

我正在创建一个触发器,以便从任何更新的表中启用changelog。 一些要点:

  1. 我必须为每个要更新的表创建一个触发器
  2. 我有一个通用表来存储所有更改:
  3. CREATE TABLE salesforce.slf_log_update( log_id BIGSERIAL PRIMARY KEY, table_update VARCHAR(200) not null, update_timestamp timestamp DEFAULT NOW() NOT NULL, field_updated varchar(200) NOT NULL, field_old_value TEXT, original_table_row_id INT NOT NULL )

    1. 我必须创建一个特定的查询来选择所有可以更新的值,例如,猜测我有一个表可以更新两个字段:
    2. SELECT 'tableA' as table_name,'field1_tableA' as field,cast(field1_tableA as varchar), datatype(), id_tableA from tableA UNION ALL SELECT 'tableA' as table_name,'field25_tableA'as field,cast(field25_tableA as varchar),id_tableA from tableA

      我看到的主要问题是:

      • 如何在不执行大型查询的情况下记录表上的任何更改并保持创建简单日志表以存储旧值?
      • 我想添加进行更新的已连接用户。有可能吗?

0 个答案:

没有答案