PostgreSQL: 如何查询表的创建时间?

         经常有人问这么个问题," 在 PostgreSQL 中如何查找表的创建时间?" ,因为在其它关系型数据库
中这个信息很容易得到,例如在 oracel中,可以通过查询 dba_objects 数据字典得到表的创建时间,如下
所示。

 

--Oracle 查询表创建时间

 

 SQL> select owner,object_name,CREATED from dba_objects where  object_name='TBL_1';

OWNER      OBJECT_NAME          CREATED
---------- -------------------- -------------------
SKYAAA     TBL_1             2010-10-18 08:24:40

   
  
    那么在 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';
INSERT 0 10000
francs=> \d test_ctime;
         Table "francs.test_ctime"
 Column |         Type          | Modifiers 
--------+-----------------------+-----------
 id     | integer               | not null
 name   | character varying(32) | 
Indexes:
    "test_ctime_pkey" PRIMARY KEY, btree (id)

francs=> \dt+ test_ctime;
                      List of relations
 Schema |    Name    | Type  | Owner  |  Size  | Description 
--------+------------+-------+--------+--------+-------------
 francs | test_ctime | table | francs | 536 kB | 
(1 row)

   

 

   备注:表创建好了,接下来演示如何定位表的物理文件。


--1.2 定位表所在的表空间

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值