?
このドキュメントでは、 php中國(guó)語(yǔ)ネットマニュアル リリース
pg_depend表記錄數(shù)據(jù)庫(kù)對(duì)象之間的依賴(lài)關(guān)系。這個(gè)信息允許DROP commands命令找出 哪些其它對(duì)象必須由DROP CASCADE刪除,或者是在DROP RESTRICT的情況下避免刪除。
這個(gè)表的功能類(lèi)似pg_shdepend,用于記錄那些在數(shù)據(jù)庫(kù)集群之間共享的對(duì)象之間的依賴(lài)性關(guān)系。
Table 45-17. pg_depend Columns
名稱(chēng) | 類(lèi)型 | 引用 | 描述 |
---|---|---|---|
classid | oid | pg_class.oid | 有依賴(lài)對(duì)象所在系統(tǒng)表的OID |
objid | oid | any OID column | 指定的有依賴(lài)對(duì)象的 OID |
objsubid | int4 | ? | 對(duì)于表字段,這個(gè)是該屬性的字段數(shù)(objid and classid 引用表本身)。對(duì)于所有其它對(duì)象類(lèi)型,目前這個(gè)字段是零。 |
refclassid | oid | pg_class.oid | 引用對(duì)象所在的系統(tǒng)表的OID |
refobjid | oid | any OID column | 指定的引用對(duì)象的OID |
refobjsubid | int4 | ? | 對(duì)于表字段,這個(gè)是該字段的字段號(hào)( refobjid和refclassid引用表本身)。 對(duì)于所有其它對(duì)象類(lèi)型,目前這個(gè)字段是零。 |
deptype | char | ? | 一個(gè)定義這個(gè)依賴(lài)關(guān)系特定語(yǔ)義的代碼。見(jiàn)下文。 |
在所有情況下,一個(gè)pg_depend記錄表示不能刪除引用的對(duì)象在有依賴(lài)的對(duì)象前。 不過(guò),這里還有幾種由deptype定義的情況:
獨(dú)立創(chuàng)建的對(duì)象之間的一般關(guān)系。可以在不影響引用對(duì)象的情況下,刪除有依賴(lài)的對(duì)象。 只有在指定了CASCADE的情況下刪除引用對(duì)象,這時(shí)也刪除了有依賴(lài)的對(duì)象。 例如:一個(gè)表字段對(duì)其數(shù)據(jù)類(lèi)型有一般依賴(lài)關(guān)系。
可以從引用對(duì)象刪除以來(lái)對(duì)象,并且如果刪除了被引用對(duì)象則應(yīng)該被 自動(dòng)刪除(不管是RESTRICT或CASCADE模式)。例如:一個(gè)表上面的命名約束是在該表上的自 動(dòng)依賴(lài)關(guān)系,因此如果刪除了表,它也會(huì)被刪除。
有依賴(lài)的對(duì)象是作為創(chuàng)建引用對(duì)象的一部分,實(shí)際上只是它的內(nèi)部實(shí)現(xiàn)的一部分。 DROP有依賴(lài)對(duì)象是不能直接允許的(將告訴用戶發(fā)出一條刪除引用對(duì)象的DROP) 。一個(gè)對(duì)引用對(duì)象的DROP 將傳播到有依賴(lài)對(duì)象,不管是否指定了CASCADE。 例如:一個(gè)創(chuàng)建來(lái)強(qiáng)制外鍵約束的觸發(fā)器在該約束的pg_constraint記錄上是標(biāo)記為內(nèi)部依賴(lài)的。
沒(méi)有依賴(lài)對(duì)象;這種類(lèi)型的記錄標(biāo)志著系統(tǒng)本身依賴(lài)于引用對(duì)象,因此這個(gè)對(duì)象決不能被刪除。 這種類(lèi)型的記錄只有在initdb的時(shí)候創(chuàng)建。有依賴(lài)對(duì)象的字段里是零。
將來(lái)可能還會(huì)有其它依賴(lài)的風(fēng)格。