Postgres Insert:在另一列中使用新插入的行的id?

时间:2017-10-17 20:16:06

标签: sql postgresql sql-insert

我正在设计一个基于本文架构的审计跟踪表:

https://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database

它的要点是,当您更新行时,只需插入当前行的副本,然后更新该行,以便获得时间点数据状态的历史记录。以下是该表格的文章示例:

enter image description here

我的问题是第一次插入。插入第一行时,我需要将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个声明中完成。

0 个答案:

没有答案