回答
我看了一遍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`tsrange`
- 2. 在PostgreSQL中创建默认时间戳
- 3. 在postgresql中创建一个表空间
- 4. 在PostgreSQL上创建表空间RDS
- 5. 创建PostgreSQL的表
- 6. PostgreSQL的创建临时表PLPGSQL功能
- 7. Postgresql:创建表时,UNION ALL比UNION慢?
- 8. 的PostgreSQL:结合表列创建时间戳
- 9. 创建函数来创建表Postgresql
- 10. PostgreSQL创建表语法
- 11. postgresql创建辅助列表
- 12. 创建的时间列表
- 13. Innodb表的创建时间
- 14. 创建时间间隔Swift的列表
- 15. 创建时间
- 16. 从MySQL迁移时在PostgreSQL中创建表时出错
- 17. 如何在postgresql中创建时间驱动触发器
- 18. 如何计算在大型Postgresql表上创建索引的时间?
- 19. 从PostgreSQL创建XML?
- 20. Postgresql创建视图
- 21. 在PostgreSQL中创建
- 22. 创建postgresql函数时不存在列
- 23. 在postgresql中创建扩展时出错
- 24. HWND创建时间
- 25. 在java代码中创建postgresql表
- 26. 如何使用PostgreSQL分别创建表?
- 27. 休眠不会创建表postgresql
- 28. 如何从postgresql中的表创建hstore?
- 29. Django 1.11.3无法在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