经常有人问这么个问题," 在 PostgreSQL 中如何查找表的创建时间?" ,因为在其它关系型数据库
中这个信息很容易得到,例如在 oracel中,可以通过查询 dba_objects 数据字典得到表的创建时间,如下
所示。
--Oracle 查询表创建时间
SQL> select owner,object_name,CREATED from dba_objects where object_name='TBL_1'; OWNER OBJECT_NAME CREATED |
那么在 PostgreSQL 中如何查找表的创建时间呢?GOOGLE 了不少网页,大致的说法是在 PostgreSQL
中没有系统表存储表的创建时间信息,因此不能直接在 PostgreSQL 库中找到这方面的信息,然而可以通
过其它方法实现,我这里总结了两种方法。
方法一:通过查找表数据文件方式
这种方法通过查找表的数据文件的方式从而确定表的创建时间,但是这种方法并不能准备查询表的创建
时间,而且有时候,这种方法得到的信息还有可能是错误的,下面大致演示下。
--1.1 创建表并插入数据
francs=> create table test_ctime (id int4 primary key ,name varchar(32)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_ctime_pkey" for table "test_ctime" CREATE TABLE francs=> insert into test_ctime select generate_series(1,10000),'create_time test'; francs=> \dt+ test_ctime; |
备注:表创建好了,接下来演示如何定位表的物理文件。
--1.2 定位表所在的表空间