发布于 4年前

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

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)
©2020 edoou.com   京ICP备16001874号-3