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');
尝试查询不存储数据的关联关系的文件节点
postgres=# CREATE VIEW bar AS SELECT * FROM foo; CREATE VIEW postgres=# SELECT pg_relation_filenode('bar') IS NULL; ?column? ---------- t (1 row)
有关更多示例,请参见 文件节点
。
参考
- PostgreSQL 文档: 数据库对象位置函数
有用链接
- PG 中 OID 和 relfilenode 的映射 - 2021 年 1 月 HighGo 博客文章