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 ] DEFAULTALTER 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
反馈
在此处提交关于“ALTER VIEW”的任何评论、建议或更正。