支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

51.48. pg_shdepend #

目錄 pg_shdepend 記錄資料庫物件與共用物件(例如角色)之間的相依性關係。此資訊可讓 PostgreSQL 確保在嘗試刪除這些物件之前,它們未被參考。

另請參閱 pg_depend,它對涉及單一資料庫內物件的相依性執行類似的功能。

與大多數系統目錄不同,pg_shdepend 在叢集的所有資料庫之間共享:每個叢集只有一個 pg_shdepend 副本,而不是每個資料庫一個副本。

表 51.48. pg_shdepend 欄位

欄位 類型

描述

dbid oid(參考 pg_database.oid

相依物件所在的資料庫的 OID,若是共用物件則為零

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

定義此相依性關係之特定語義的代碼;請參閱文字


在所有情況下,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 中建立將釘選物件作為被參考物件或相依物件的項目。

提交更正

如果您在文件中看到任何不正確、與您使用特定功能不符或需要進一步說明的地方,請使用此表單來報告文件問題。