PG_SHDEPEND
PG_SHDEPEND系统表记录数据库对象和共享对象(比如角色)之间的依赖关系。记录的这些信息使DWS可以确保对象在被删除时没有被其他对象引用。
PG_DEPEND的作用类似,只是它是针对单个数据库中对象之间的依赖。
和大多数其他系统表不同,PG_SHDEPEND在集群的所有数据库之间共享:每个数据库集群只有一个PG_SHDEPEND,并非每个数据库一个。
| 名字 | 类型 | 引用 | 描述 | 
|---|---|---|---|
| dbid | oid | PG_DATABASE.oid | 依赖对象所在的数据库的OID ,如果是共享对象,则为0。 | 
| classid | oid | PG_CLASS.oid | 依赖对象所在的系统表的OID。 | 
| objid | oid | 任意OID属性 | 指定的依赖对象的OID。 | 
| objsubid | integer | - | 对于一个表字段,为字段号(objid和classid参考表本身)。对于所有其他对象类型,该字段为0。 | 
| refclassid | oid | PG_CLASS.oid | 被引用对象所在的系统表的OID(必须是一个共享表)。 | 
| refobjid | oid | 任意OID属性 | 指定的被引用对象的OID。 | 
| deptype | "char" | - | 定义该依赖关系的特定语义的代码见表后说明。 | 
| objfile | text | - | 用户定义C函数库文件路径。 | 
在任何情况下,一条PG_SHDEPEND记录就表明被引用的对象不能在未删除依赖对象的前提下被删除。但是其中也有几种依赖类型由deptype定义的情况:
 
  