pg_relation_filenode()
是一个系统函数,用于获取具有指定 OID 或名称的关系的 文件节点 号。
pg_relation_filenode()
添加于 PostgreSQL 9.0。
用法
pg_relation_filenode (relation
regclass
) →oid
返回的 oid
对应于 pg_class
中 relfilenode
中包含的值,但某些 系统目录 表的值为 0
除外。因此,必须使用此函数才能可靠地确定关系的文件节点。
如果关系是视图等不具有磁盘存储的类型,则返回 NULL
。
更改历史
- PostgreSQL 9.0
- 添加 (提交 b9b8831a)
示例
postgres=# SELECT pg_relation_filenode('foo'); pg_relation_filenode ---------------------- 16499 (1 row)
尝试查询不存在的关系的关系文件节点
postgres=# SELECT pg_relation_filenode('bar'); ERROR: relation "bar" does not exist LINE 1: SELECT pg_relation_filenode('bar');
尝试查询不存储数据的 relation 的关系文件节点
postgres=# CREATE VIEW bar AS SELECT * FROM foo; CREATE VIEW postgres=# SELECT pg_relation_filenode('bar') IS NULL; ?column? ---------- t (1 row)
请参阅 filenode
获取更多示例。
参考文献
- PostgreSQL 文档: 数据库对象位置函数
有用链接
- PG 中 oid 和 relfilenode 的映射 - HighGo 2021 年 1 月博客文章