pg_shdepend
#目錄 pg_shdepend
記錄資料庫物件與共用物件(例如角色)之間的相依性關係。此資訊可讓 PostgreSQL 確保在嘗試刪除這些物件之前,它們未被參考。
另請參閱 pg_depend
,它對涉及單一資料庫內物件的相依性執行類似的功能。
與大多數系統目錄不同,pg_shdepend
在叢集的所有資料庫之間共享:每個叢集只有一個 pg_shdepend
副本,而不是每個資料庫一個副本。
表 51.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
中建立將釘選物件作為被參考物件或相依物件的項目。
如果您在文件中看到任何不正確、與您使用特定功能不符或需要進一步說明的地方,請使用此表單來報告文件問題。