2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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 VIEW, DROP VIEW

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步說明的內容,請使用 此表格 來報告文件問題。