我们需要在某个表上跟踪数据修改。我们需要一些关于如何完成这项任务的建议。我们有两条街道要遵循。1)创建一个表,记录如下:userid、修改日期、表名、fieldname、fieldtype、fieldvalue。这样,我们将使用触发器进行跟踪。
2)在我们需要跟踪历史的所有表上添加一个状态字段,称为状态。该字段将具有以下值:I = 插入 - D = 删除 - M = 已修改,具有相对日期和修改。这样我们总能知道最新的有效行和之前的所有数据修改 3) 就在你的脑海里 你有什么建议?
我们需要在某个表上跟踪数据修改。我们需要一些关于如何完成这项任务的建议。我们有两条街道要遵循。1)创建一个表,记录如下:userid、修改日期、表名、fieldname、fieldtype、fieldvalue。这样,我们将使用触发器进行跟踪。
2)在我们需要跟踪历史的所有表上添加一个状态字段,称为状态。该字段将具有以下值:I = 插入 - D = 删除 - M = 已修改,具有相对日期和修改。这样我们总能知道最新的有效行和之前的所有数据修改 3) 就在你的脑海里 你有什么建议?
我已经使用单独的“历史”模式和触发器在 PostgreSQL 上完成了多次。
“历史”模式中的表与真实表相同,但history_id
添加了 PK 和事件时间戳。“历史”模式中的表没有任何约束。如果您还需要跟踪删除,您还需要创建操作字段。
在 postgreSQL 中,您可以使用以下语句轻松创建此类表CREATE
:
CREATE TABLE history.tbl AS
(history_id BIGSERIAL PRIMARY KEY,
event_time TIMESTAMP DEFAULT NOW(),
action CHAR(1),
LIKE public.tpl);
在此之后,您应该创建触发器,该触发器将在插入、更新、删除时插入到历史表中。