嘗試修改 PostgreSQL 檢視中使用的欄位時,通常需要刪除檢視、變更列,並重新建立檢視。這個過程可能是乏味且耗時的。有沒有辦法減輕這種負擔?
永久解決方案:
避免使用定義長度的字元變化(n)資料類型。相反,請使用不含長度說明符的 text 或 varchar 資料類型。如有必要,請使用 CHECK 約束強制執行最大長度。這種方法消除了在更改列類型時修改視圖的需要。
CREATE TABLE monkey (name text NOT NULL); ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
PostgreSQL 視圖不只是子查詢的別名,而是具有自己的規則結構的專用表。因此,在修改基礎表時,通常也需要修改依賴視圖。 ALTER VIEW 語句可以更改視圖屬性,但不能更改基礎查詢。
要變更查詢,請使用 CREATE OR REPLACE VIEW。但是,當修改結果列資料類型時,無法執行此操作。在這種情況下,必須刪除舊視圖並建立新視圖。此操作不會刪除任何數據,但可能會刪除與視圖關聯的任何其他屬性。
以上是PostgreSQL 視圖:如何修改視圖中使用的欄位而不刪除並重新建立它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!