暂无图片
在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


请输入正文
提交
相关推荐
如何让数据库执行加密的.sql文件
回答 5
用oracle自己的WRAP加密即可。
目前postgreSQL的哪个版本最稳定?或者说推荐使用哪个版本?
回答 1
目前PostgreSQL的最新版本是13.0,它是一个非常稳定和成熟的版本。如果您需要使用最新的功能和特性,那么推荐使用13.0版本。但是,如果您的应用程序不需要最新的功能,或者您的应用程序已经使用了
pg中备库readonly,能执行vaccum吗?
回答 1
不能
在pg里面,A这个是原表,怎样高效的查询得到B这边的结果呢?
回答 1
不知道新版本的PG是否支持层次查询了。但可以考虑使用和构造递归查询,示例如下:WITHrecursiveT(code,parentcode,name,h)AS(SELECTcode,parentcod
postgresql 中 schema有个数限制吗?
回答 1
没有个数限制的,不过一般都是schema和user同名
pg中会话参数和全局参数 ,类似mysql那种session ---global
回答 1
看看这个https://blog.csdn.net/qq35462323/article/details/104769640
pg中在高并发的情况下,都向同一个块中插入数据,会出现啥等待??
回答 1
网络瓶颈,网络等待,网络延迟的消耗CPU,IO瓶颈,有一定的性能损耗
PG TIMESTAMP加上分钟数
回答 3
已采纳
WITHRECURSIVEseqAS(SELECTcurrenttimestampASts,1AScntUNIONALLSELECTtsinterval'2minutes',cnt1FROMseqWH
PostgreSQL数据库的文件存储在哪里?
回答 1
已采纳
initdb的时候会指定一个PGDATA目录,这就是PostgresQL存储数据的地方。典型的位置是在/postgres/dataa。PGDATA下面各项存储的内容大概是:文件或目录名存储内容PGVE
如何精简窗口标题,只显示表名,不显示模式名和数据源地址
回答 1
直接右键窗口名rename,想改啥就改啥!