52.47. pg_shdepend

目录pg_shdepend记录数据库对象和共享对象(例如角色)之间的依赖关系。该信息使 PostgreSQL 可以确保在尝试删除这些对象之前未对其进行引用。

另请参见pg_depend,它对涉及单个数据库内对象的依赖项执行类似的功能。

与大多数系统目录不同,pg_shdepend在群集的所有数据库之间共享:每个群集只有pg_shdepend的一个副本,而不是每个数据库一个。

表 52.47. pg_shdepend

Name Type References Description
dbid oid pg_database.oid 从属对象所在数据库的 OID,对于共享对象为 0
classid oid pg_class.oid 从属对象所在的系统目录的 OID
objid oid 任何 OID 列 特定从属对象的 OID
objsubid int4 对于表列,这是列号(objidclassid表示表本身)。对于所有其他对象类型,此列为零。
refclassid oid pg_class.oid 引用对象所在的系统目录的 OID(必须是共享目录)
refobjid oid 任何 OID 列 特定参考对象的 OID
deptype char 定义此依赖关系的特定语义的代码;看到 Literals

在所有情况下,pg_shdepend条目表示如果不删除依赖对象也不能删除所引用的对象。但是,存在由deptype标识的几种子口味:

将来可能需要其他依赖项。特别要注意的是,当前定义仅支持将角色用作引用对象。

上一章 首页 下一章