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 標準的擴充套件。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步說明的內容,請使用 此表格 來報告文件問題。