ALTER VIEW
更新时间:2026-06-24
更改一个视图的定义。
语法
SQL
1 ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
2
3 ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
4
5 ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner
6
7 ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
8
9 ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
10
11 ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
12
13 ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )
14 ```
15
16
17
18## 描述
19
20`ALTER VIEW`更改视图的各种辅助属性。 (如果要修改视图的定义查询,请使用`CREATE OR REPLACE VIEW`。)
21
22 要执行此命令,您必须是视图的所有者。 要更改视图的架构,还必须对新架构具有`CREATE`权限。
23
24 要更改所有者,您还必须是新拥有角色的直接或间接成员,并且该角色必须在视图的架构上具有`CREATE`权限。
25 这些限制迫使更改所有者不能执行删除和重新创建视图所无法做的任何事情。 但是,数据库管理员可以更改任何视图的所有权。
26
27
28
29## 参数
30
31该SQL命令参数说明见下
32
33 `name`
34 : 现有视图的名称(可选,由模式限定)。
35
36 `IF EXISTS`
37 : 如果该视图不存在,不会抛出错误,而是发出通知。
38
39 `SET`/`DROP DEFAULT`
40 : 这些表格设置或删除列的默认值。 在为视图应用任何规则或触发器之前,将视图列的默认值替换为目标为视图的任何`INSERT`或`UPDATE`命令。 因此,视图的默认值将优先于基础关系中的任何默认值。
41
42 `new_owner`
43 : 视图的新所有者。
44
45 `new_name`
46 : 视图的新名称。
47
48 `new_schema`
49 : 视图的新架构。
50
51 `SET ( view_option_name [= view_option_value] [, ... ] )` \| `RESET ( view_option_name [, ... ] )`
52 : 设置或重置视图选项。 当前支持的选项是:
53
54 `check_option` (string)
55 : 更改视图的检查选项。 该值必须是 `local`或`cascaded`。
56
57 `security_barrier` (boolean)
58 : 更改视图的安全屏障属性。 该值必须是布尔值,例如 `true`或`false`。
59
60
61
62注意
63: 由于历史原因,`ALTER TABLE` 也可以与视图一起使用; 但是,视图允许的`ALTER TABLE` 的唯一变体与上面显示的语句等效。
64
65 将视图`myview`重命名为`newview`:
66
67 ``` sql
68 ALTER VIEW myview RENAME TO newview;
69 ```
70
71
72
73## 示例
74
75要将视图`foo`重命名为`bar`:
76
77 ``` sql
78 ALTER VIEW foo RENAME TO bar;
79 ```
80
81 要将默认列值附加到可更新视图:
82
83 ``` sql
84 CREATE TABLE base_table (id int, ts timestamptz);
85 CREATE VIEW a_view AS SELECT * FROM base_table;
86 ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
87 INSERT INTO base_table(id) VALUES(1); -- ts will receive a NULL
88 INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time
89 ```
90
91
92
93兼容性说明
94: `ALTER VIEW`是SQL标准的PalopgMPP数据库扩展。
95
96
97
98相关SQL命令
99: `CREATE VIEW`, `DROP VIEW`
评价此篇文章
