暂无图片
在postgreSQL 里面在哪个表记录了表的创建时间和修改时间?
我来答
分享
暂无图片 匿名用户
在postgreSQL 里面在哪个表记录了表的创建时间和修改时间?

在postgreSQL 里面在哪个表记录了表的创建时间和修改时间?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
赵师的工作日

可以通过以下sql查询表的创建时间和修改时间

SELECT relname, relkind, relnamespace::regnamespace, relowner, reltuples, relpages, relsize, relcreationtime::timestamp, relmodificationtime::timestamp
FROM pg_class
WHERE relname = 'table_name';
复制
暂无图片 评论
暂无图片 有用 2
打赏 0
清风生
2023-05-10
哪个版本?
赵师的工作日

目前所有版本

暂无图片 评论
暂无图片 有用 0
打赏 0
清风生

pg没有系统表视图记录表的创建时间,但可以通过其他额外的手段来判断表的创建时间。

通过pg日志

在表创建前,设置参数log_statement=ddl ,pg会在日志中记录所有ddl的语句操作,包括CREATE TABLE,这种方法是最准确靠谱的。
但问题是,如果表已经创建了很长时间,而pg没有保留那么长时间的日志,就只能通过其他手段来判断。

通过表数据文件的创建时间

psql中可以通过pg_stat_file() 函数可以查看数据文件的access、modification、change时间,但没有文件的创建时间。
OS命令stat | grep birth 可以查看数据文件的创建时间,但需要注意的是:vacuum full、cluster、truncate等命令会重写表,所以会改变数据文件的创建时间。 这种情况可以通过业务方面去判断,比如通过查看同一批同时创建的表的数据文件创建时间来对比。

  1. ext4文件系统通过stat可以查看文件的birth时间, 如果为空可以通过命令sudo debugfs -R 'stat filename' DEVICE 查看,例如,sudo debugfs -R "stat '/data/postgres/13/data/base/13580/41034'" /dev/mapper/vol_slta340ispl_01-volume
  2. 如果是xfs文件系统,stat命令查看时birth时间也可能为空,可以通过命令sudo xfs_db -r -c "inode $(stat -c %i /data/postgres/13/data/base/13580/41034)" -c "p v3.crtime.sec" /dev/mapper/vol_slta340ispl_01-volume 查看
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Postgresql 的哈希索引严格弱于b+树索引吗?
回答 1
请问索引严格是什么?没听说过索引有严格和不严格的讲法。
postgreSQL 分区表 默认放到DEFAULT,怎么查DEFAULT的数据?
回答 1
直接查询父表,where带上分区键,执行计划会直接打到子表上
pg中的一个表t 的t_infomask2 是16386 32770,代表啥意思?
回答 1
看看这个就明白了:https://blog.csdn.net/weixin43230594/article/details/123707218
PostgreSQL jsonb_build_object 能直接聚合几个字段吗?
回答 2
已采纳
暂无文字回复
postgresql freeze会锁表吗?
回答 1
看什么锁了,一般来说对业务无影响
Postgresql 中如果事务对一个字段更新,在事务没完成时,另有一个事务更新同一字段,会发生什么吗?
回答 2
会发生锁。
PostgreSQL 复制槽有什么用?
回答 2
复制槽 提供了一种自动化的方法来确保主控机在所有的后备机收到WAL段之前不会移除它们,并且主控机也不会移除可能导致 恢复冲突的行,即使后备机断开也是如此。
请问一下,pg分区表的表结构可以使用 pg_dump 导出吗?
回答 1
已采纳
可以,指定表导出里面就有相关信息了
请教各位老师,pg_dump加了-Z参数对备份文件做了压缩,pg_restore如何还原?
回答 1
已采纳
dump时不指定格式时默认是formatp导出格式是文本格式文本格式一般用psql导入,formatd或者c可以使用压缩可以用pgrestore恢复
oracle的游标在pg中怎么用啊?%NOTFOUND在pg中用not found不管用
回答 1
已采纳
PostgreSQL游标步骤:1、定义一个游标:declare游标名cursor2、打开一个游标3、从结果集抓取行到游标4、检查是否还有行需要抓取,如果是返回第三步执行抓取,如果不是,执行第五条5、关
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~