PostgreSQL设置track_commit_timestamp跟踪数据插入和更新的时间

时间:2022-06-01 12:37:46

PostgreSQL 9.5新增了配置项track_commit_timestamp,它是用来开启跟踪记录事务提交的时间戳。

配置

编辑postgresql.conf,添加配置先如下:

track_commit_timestamp = on

接着重启PostgreSQL。

查询

使用函数pg_xact_commit_timestamp查询记录更新或插入的时间。具体事务可以传transaction_id,也可以使用系统列xmin作为函数的参数,如下:

# INSERT INTO colours VALUES ('mauve'),('cyan'),('indigo');
INSERT
# SELECT pg_xact_commit_timestamp(xmin), * FROM colours;
pg_xact_commit_timestamp | id | name
-------------------------------+----+--------
| 1 | red
| 2 | green
| 3 | blue
2015-10-02 11:16:34.678267+01 | 4 | mauve
2015-10-02 11:16:34.678267+01 | 5 | cyan
2015-10-02 11:16:34.678267+01 | 6 | indigo

需要注意的是,跟踪的时间只对在配置重启PostgreSQL后的记录有效,之前的记录是没有跟踪时间。

使用pg_last_committed_xact函数查看最后提交的事务时间戳:

 # SELECT * FROM pg_last_committed_xact();
xid | timestamp
------+-------------------------------
2039 | 2015-10-02 11:16:34.678267+01
(1 row)