支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

ALTER VIEW

ALTER VIEW — 更改檢視表的定義

概要

ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
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 TO new_column_name
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_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

這些形式設定或刪除欄位的預設值。 檢視表欄位的預設值會被替換為任何以檢視表為目標的 INSERTUPDATE 指令中,然後再套用檢視表的任何規則或觸發程序。 因此,檢視表的預設值將優先於基礎關聯中的任何預設值。

new_owner

檢視表新擁有者的使用者名稱。

new_name

檢視表的新名稱。

new_schema

檢視表的新綱要。

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

設定或重設檢視表選項。 目前支援的選項有

check_option (enum)

變更檢視表的檢查選項。 該值必須為 localcascaded

security_barrier (boolean)

變更檢視表的安全性屏障屬性。 該值必須是布林值,例如 truefalse

security_invoker (boolean)

變更檢視表的安全性呼叫者屬性。 該值必須是布林值,例如 truefalse

備註

由於歷史原因,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 VIEWPostgreSQL 對 SQL 標準的擴充。

另請參閱

CREATE VIEWDROP VIEW

提交更正

如果您在文件中發現任何不正確、與特定功能的使用經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。