ALTER VIEW
是用于修改视图的 DDL 命令。
ALTER VIEW
在 PostgreSQL 8.3 中添加。
用法
ALTER VIEW
可用于修改视图的各种属性和特性。但是,它不能用于更改底层定义;这只能使用 CREATE OR REPLACE VIEW ...
语法来完成。
出于历史原因,ALTER TABLE
可用作 ALTER VIEW
的替代方法,用于对表和视图均有效的语法。
更改历史记录
- PostgreSQL 15
- 添加了
security_invoker
选项(提交 7faa5fc8)
- 添加了
- PostgreSQL 14
- 添加了
ALTER VIEW ... OWNER TO CURRENT_ROLE
语法(提交 45b98057)
- 添加了
- PostgreSQL 13
- 添加了
ALTER VIEW ... RENAME COLUMN ...
语法(提交 30840c92)
- 添加了
- PostgreSQL 9.4
- 添加了
ALTER VIEW ... OWNER TO { CURRENT_USER | SESSION_USER }
语法(提交 31eae602)
- 添加了
- PostgreSQL 9.2
- PostgreSQL 8.4
- 添加了以下语法(提交 a0b012a1)
ALTER VIEW ... ALTER COLUMN ... [ SET | DROP ] DEFAULT
ALTER VIEW ... OWNER TO ...
ALTER VIEW ... SET SCHEMA ...
- 添加了以下语法(提交 a0b012a1)
- PostgreSQL 8.3
- 添加(提交 a5589813)
示例
ALTER VIEW
的基本用法示例
postgres=# ALTER VIEW bar RENAME TO baz; ALTER VIEW
ALTER TABLE
可用于视图,只要使用的语法对视图有效
postgres=# ALTER TABLE baz RENAME TO boo; ALTER TABLE postgres=# \d boo View "public.boo" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer |
使用对视图无效的 ALTER TABLE
语法
postgres=# ALTER TABLE boo SET TABLESPACE foo; ERROR: ALTER action SET TABLESPACE cannot be performed on relation "boo" DETAIL: This operation is not supported for views.
参考
- PostgreSQL 文档: ALTER VIEW