pgsql依賴性追蹤

2021-06-22 08:34:56 字數 1266 閱讀 8433

postgresql 8.1 中文文件

prev

fast backward

chapter 5. 資料定義

fast forward

next

如果你建立了乙個包含許多表,並且帶有外來鍵約束,檢視, 觸發器,函式等等的複雜資料庫結構。那麼你就會在物件 之間隱含地建立了乙個依賴性的網路。比如,乙個帶有外來鍵 約束的表依賴於它引用的表。

為了保證整個資料庫結構的完整性,postgresql 保證 你無法刪除那些還有其它物件依賴的物件。比如,試圖刪除我們在 section 5.3.5 裡考慮的產品表,這個時候 訂單表仍然依賴它,這樣的刪除動作是不能成功的,會有類似下面的錯誤資訊出現:

drop table products;

notice: constraint orders_product_no_fkey on table orders depends on table products

error: cannot drop table products because other objects depend on it

use drop ... cascade to drop the dependent objects too

drop table products cascade;
然後所有被依賴的物件都將被刪除。在這種情況下, 它並不刪除訂單表,它只刪除外來鍵約束。(如果你想檢查 drop ... cascade 會幹什麼,執行不帶 cascade 的 drop然後閱讀 notice 資訊。)

postgresql 裡的所有刪除命令都 支援宣告 cascade。當然,具體的依賴性實體 取決於物件的型別。你也可以寫 restrict,而 不是 cascade,以獲取預設的行為, 這個時候限制於刪除那些其它物件依賴的物件。

注意:根據 sql 標準,要求至少宣告 restrict 或者 cascade 中的乙個。 實際上沒有哪種資料庫系統強制這一點,但是預設的行為是 restrict 還是 cascade 則因系統而異。

注意:在 postgresql 7.3 之前的外來鍵約束依賴性和序列字段依賴性 在公升級過程中都不會得到維護或者建立。所有其它的依賴性型別 在從 7.3 版本以前的資料庫公升級過程中都將得到恰當的建立。

prev

home

next

其它資料庫物件

up資料操作

spring bean定義的依賴性檢查

在spring的工程裡,bean的定義是不可避免的。雖然有各種可以減少很多bean的配置,特別是action眾多的時候,我們通常可以通過引入autowire 來避免action類bean的定義。但還會有眾多的bean需要定義,他們之間的依賴關係通常也是複雜 多變的。在這過程中我們通常會發生一些弱智的...

vc dll依賴性檢視工具depends

depends用來顯示與乙個可執行檔案 exe或者dll 相關的依賴項 dll 以及該exe或dll引用了這些dll中的哪些介面。同時也可以看到每個被依賴的dll中的所有匯出的函式介面。vc6.0自帶的depends軟體,該軟體在vc6安裝目錄下的tools資料夾裡面 d microsoft vis...

VC dll依賴性檢視工具depends

depends用來顯示與乙個可執行檔案 exe或者dll 相關的依賴項 dll 以及該exe或dll引用了這些dll中的哪些介面。同時也可以看到每個被依賴的dll中的所有匯出的函式介面。vc6.0自帶的depends軟體,該軟體在vc6安裝目錄下的tools資料夾裡面 d microsoft vis...