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_USER | SESSION_USER }
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 權限。要變更擁有者,您還必須是新擁有角色的直接或間接成員,並且該角色必須對檢視表的綱要具有 CREATE 權限。(這些限制強制要求變更擁有者不會透過移除和重新建立檢視表來執行任何操作。但是,超級使用者無論如何都可以變更任何檢視表的所有權。)
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