ALTER VIEW — 更改檢視表的定義
ALTER VIEW [ IF EXISTS ]name
ALTER [ COLUMN ]column_name
SET DEFAULTexpression
ALTER VIEW [ IF EXISTS ]name
ALTER [ COLUMN ]column_name
DROP DEFAULT ALTER VIEW [ IF EXISTS ]name
OWNER TO {new_owner
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER VIEW [ IF EXISTS ]name
RENAME [ COLUMN ]column_name
TOnew_column_name
ALTER VIEW [ IF EXISTS ]name
RENAME TOnew_name
ALTER VIEW [ IF EXISTS ]name
SET SCHEMAnew_schema
ALTER VIEW [ IF EXISTS ]name
SET (view_option_name
[=view_option_value
] [, ... ] ) ALTER VIEW [ IF EXISTS ]name
RESET (view_option_name
[, ... ] )
ALTER VIEW
更改檢視表的各種輔助屬性。(如果您想修改檢視表的定義查詢,請使用 CREATE OR REPLACE VIEW
。)
您必須擁有檢視表才能使用 ALTER VIEW
。要更改檢視表的綱要,您還必須在新綱要上擁有 CREATE
權限。要變更擁有者,您必須能夠 SET ROLE
設定為新的擁有角色,並且該角色必須在檢視表的綱要上擁有 CREATE
權限。(這些限制強制執行變更擁有者不會做任何您無法通過刪除並重新建立檢視表來做的事情。但是,超級使用者無論如何都可以變更任何檢視表的所有權。)
name
現有檢視表的名稱(可選擇使用綱要限定)。
column_name
現有欄位的名稱。
new_column_name
現有欄位的新名稱。
IF EXISTS
如果檢視表不存在,則不要拋出錯誤。 在這種情況下會發出通知。
SET
/DROP DEFAULT
這些形式設定或刪除欄位的預設值。 檢視表欄位的預設值會被替換為任何以檢視表為目標的 INSERT
或 UPDATE
指令中,然後再套用檢視表的任何規則或觸發程序。 因此,檢視表的預設值將優先於基礎關聯中的任何預設值。
new_owner
檢視表新擁有者的使用者名稱。
new_name
檢視表的新名稱。
new_schema
檢視表的新綱要。
SET ( view_option_name
[= view_option_value
] [, ... ] )
RESET ( view_option_name
[, ... ] )
設定或重設檢視表選項。 目前支援的選項有
check_option
(enum
)變更檢視表的檢查選項。 該值必須為 local
或 cascaded
。
security_barrier
(boolean
)變更檢視表的安全性屏障屬性。 該值必須是布林值,例如 true
或 false
。
security_invoker
(boolean
)變更檢視表的安全性呼叫者屬性。 該值必須是布林值,例如 true
或 false
。
由於歷史原因,ALTER TABLE
也可以與檢視表一起使用;但是允許與檢視表一起使用的 ALTER TABLE
的唯一變體等同於上面顯示的變體。
將檢視表 foo
重新命名為 bar
ALTER VIEW foo RENAME TO bar;
將預設欄位值附加到可更新的檢視表
CREATE TABLE base_table (id int, ts timestamptz); CREATE VIEW a_view AS SELECT * FROM base_table; ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now(); INSERT INTO base_table(id) VALUES(1); -- ts will receive a NULL INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time
ALTER VIEW
是 PostgreSQL 對 SQL 標準的擴充。
如果您在文件中發現任何不正確、與特定功能的使用經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。