我正在设计一个基于本文架构的审计跟踪表:
https://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
它的要点是,当您更新行时,只需插入当前行的副本,然后更新该行,以便获得时间点数据状态的历史记录。以下是该表格的文章示例:
我的问题是第一次插入。插入第一行时,我需要将original_id标记为与行的id相同。我可以在一个声明中这样做吗?或者我必须先插入新行,然后使用新ID更新original_id列。
根据示例图片,这是insert语句的样子:
begin;
insert into people (status, name, created_date, created_by)
values ('active', 'Julia Singleton', 'today', 'me')
returning id;
// use the returned id to update original_id on the row
// ...
commit;
我很好奇是否可以在1个声明中完成。