触发历史记录-如何定义最近更新的列?

时间:2018-08-02 08:29:39

标签: postgresql triggers audit

我正在尝试在PostgreSQL中实现历史记录触发功能。我写了这个:

CREATE OR REPLACE FUNCTION history_update() 
RETURNS trigger AS

$$

BEGIN

    INSERT INTO data_history(id, geom, origine, descrizione, img, created, created_by)
    VALUES(NEW.id, NEW.geom, NEW.origine, NEW.descrizione, NEW.img, current_timestamp, current_user);

    RETURN NEW;

END;

$$

LANGUAGE plpgsql;

CREATE TRIGGER update_trigger
    AFTER UPDATE ON data 
    FOR EACH ROW
    EXECUTE PROCEDURE history_update();

现在,我想添加另一列(称为last_update),在其中设置更新值的列的名称。

例如,如果更新后的值在名为“ supporto”的列中,那么在列last_updated中,我想查看具有更新后值的同一列的名称(称为“ supporto”)。

如果该列中的更新值不止一个,该怎么办?可能的建议:

  1. 在“ last_updated”列的行中插入更多值
  2. 插入与原始表中的列号一样多的列(例如last_updated1last_updated2 ...)

有什么建议吗?谢谢

0 个答案:

没有答案