pg_shdepend
#目錄 pg_shdepend
記錄了資料庫物件與共享物件(例如角色)之間的依賴關係。這些資訊允許 PostgreSQL 在嘗試刪除物件之前確保這些物件未被引用。
另請參見 pg_depend
,它對單個數據庫內物件之間的依賴關係執行類似的功能。
與大多數系統目錄不同,pg_shdepend
在叢集的所有資料庫之間共享:每個叢集只有一份 pg_shdepend
的副本,而不是每個資料庫一份。
表 52.48. pg_shdepend
列
列 型別 描述 |
---|
依賴物件所在的資料庫的 OID,對於共享物件為零 |
依賴物件所在的系統目錄的 OID |
特定依賴物件的 OID |
對於表列,這是列號( |
被引用物件所在的系統目錄的 OID(必須是共享目錄) |
特定被引用物件的 OID |
一個程式碼,定義此依賴關係的具體語義;參見文字 |
在所有情況下,pg_shdepend
條目都表示在刪除依賴物件之前不能刪除被引用物件。但是,deptype
標識了幾種子型別:
SHARED_DEPENDENCY_OWNER
(o
)被引用物件(必須是角色)是依賴物件的所有者。
SHARED_DEPENDENCY_ACL
(a
)被引用物件(必須是角色)在依賴物件的ACL中被提及。(對於物件的所有者,不會建立 SHARED_DEPENDENCY_ACL
條目,因為所有者已經有 SHARED_DEPENDENCY_OWNER
條目。)
SHARED_DEPENDENCY_INITACL
(i
)被引用物件(必須是角色)在依賴物件的 pg_init_privs
條目中被提及。
SHARED_DEPENDENCY_POLICY
(r
)被引用物件(必須是角色)被提及為依賴的策略物件的目標。
SHARED_DEPENDENCY_TABLESPACE
(t
)被引用物件(必須是表空間)被提及為沒有儲存的關係的表空間。
將來可能需要其他依賴型別。特別要注意的是,當前定義僅支援角色和表空間作為被引用物件。
與 pg_depend
目錄類似,在 initdb 期間建立的大多數物件都被認為是 “固定” 的。在 pg_shdepend
中不會建立任何會將固定物件作為被引用物件或依賴物件建立的條目。
如果您在文件中發現任何不正確的內容、與您在使用特定功能時的經驗不符或需要進一步澄清的內容,請使用 此表格 報告文件問題。