回答
我看了一遍pg_ *表,并且在那里找不到任何创建时间。可以找到表格文件,但是在Linux上你无法获得文件创建时间。因此,我认为答案是,你只能找到在Windows上的信息,使用以下步骤:
- 获得数据库ID与
select datname, datdba from pg_database;
- 获得与
select relname, relfilenode from pg_class;
- 表filenode的ID查找表文件并查看其创作时间;我认为这个位置应该是
<PostgreSQL folder>/main/base/<database id>/<table filenode id>
(不知道它在Windows上是什么)。
我觉得在PostgreSQL中是不可能的,但是您可能会在基础表文件的创建时间中找到它。
你不能 - 信息不记录在任何地方。查看表格文件不一定会给你正确的信息 - 有表格操作会为你创建一个新文件,在这种情况下,日期会重置。
你可以从pg_stat_last_operation得到这个。这里是如何做到这一点:
select * from pg_stat_last_operation where objid = 'table_name'::regclass order by statime;
此表存储以下操作:
select distinct staactionname from pg_stat_last_operation;
staactionname
---------------
ALTER
ANALYZE
CREATE
PARTITION
PRIVILEGE
VACUUM
(6 rows)
错误:“pg_stat_last_operation not exist”,我正在使用pg9.2.4。 – 2014-01-12 23:58:00
pg_stat_last_operation是Greenplum。 – 2014-04-15 04:38:14
表'pg_stat_all_tables'也可以提供帮助。 – 2015-06-15 08:12:55
--query
select pslo.stasubtype, pc.relname, pslo.statime
from pg_stat_last_operation pslo
join pg_class pc on(pc.relfilenode = pslo.objid)
and pslo.staactionname = 'CREATE'
Order By pslo.statime desc
将有助于实现预期的效果
(试了一下在greenplum上)
SELECT oid FROM pg_database WHERE datname = 'mydb';
然后(假设oid
是12345):
ls -l $PGDATA/base/12345/PG_VERSION
此解决方法假定PG_VERSION
是最有可能在创建之后进行修改。
注意:如果没有定义PGDATA
,检查Where does PostgreSQL store the database?
- 1. PostgreSQL索引创建时间
- 2. PostgreSQL:在时间戳创建索引:: DATE
- 3. 从两个时间戳创建PostgreSQL`tsrange`
- 4. 在PostgreSQL中创建默认时间戳
- 5. 在postgresql中创建一个表空间
- 6. 在PostgreSQL上创建表空间RDS
- 7. 创建PostgreSQL的表
- 8. 创建表时postgresql语法错误
- 9. Postgresql:创建表时,UNION ALL比UNION慢?
- 10. PostgreSQL的创建临时表PLPGSQL功能
- 11. 的PostgreSQL:结合表列创建时间戳
- 12. 创建函数来创建表Postgresql
- 13. postgreSQL:创建XML时排序
- 14. postgresql创建辅助列表
- 15. PostgreSQL创建表语法
- 16. 创建的时间列表
- 17. WordPress的:创建时间表
- 18. Innodb表的创建时间
- 19. 如何在postgreSQL中创建表时指定时间戳的格式?
- 20. 创建时间间隔Swift的列表
- 21. 创建时间
- 22. 减少创建临时表的时间
- 23. 创建时间表的SQL表
- 24. 当创建PostgreSQL中的表,该表被创建,但列不
- 25. PostgreSQL的:创建表时指定默认时区
- 26. 从MySQL迁移时在PostgreSQL中创建表时出错
- 27. 如何在postgresql中创建时间驱动触发器
- 28. 为什么我不能在postgresql中创建表空间
- 29. 制作的PostgreSQL创建新的表空间
- 30. 如何计算在大型Postgresql表上创建索引的时间?
上有一个表中的一些操作,比如CLUSTER,这将产生一个新的文件,而不是重新使用旧的。所以这不是一个可靠的方法。 – 2010-04-05 09:15:57
@Alex Korban:完全自动化在这里:http://stackoverflow.com/questions/18849756/automatically-drop-tables-and-indexes-older-than-90-days/18852752#18852752 – 2013-09-17 15:09:17
@Quandary:有趣的,谢谢。看起来似乎还没有防弹法,除了自己存储创建时间。 – 2013-09-19 04:42:20