↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

CREATE VIEW

CREATE VIEW — 定义一个新视图

大纲

CREATE VIEW view [ ( column name list ) ] AS SELECT query
  

输入

view

要创建的视图的名称。

column name list

一个可选的名称列表,用作视图的列。如果给出,这些名称会覆盖本应从 SQL 查询推导出的列名。

query

一条 SQL 查询,它将提供视图的列和行。

关于有效参数的更多信息,参见 SELECT 语句。

输出

CREATE

视图创建成功时返回的消息。

ERROR: Relation 'view' already exists

如果指定的视图已存在于数据库中,就会出现这个错误。

NOTICE: Attribute 'column' has an unknown type

如果你不指定类型,创建出的视图就会带有一个未知类型的列。例如,下面的命令会产生一条警告:

CREATE VIEW vista AS SELECT 'Hello World'
	

而这条命令则不会:

CREATE VIEW vista AS SELECT text 'Hello World'
	

描述

CREATE VIEW 将定义一个表的一个视图。该视图不会被物理物化;相反,会自动生成一条查询重写检索规则来支持对视图的检索操作。

注意

目前视图是只读的:系统不允许在视图上执行插入、更新或删除。你可以通过创建规则,把对视图的插入等操作改写为对其他表的适当动作,来获得可更新视图的效果。更多信息见CREATE RULE。

使用DROP VIEW语句删除视图。

用法

创建一个由所有喜剧(Comedy)影片组成的视图:

CREATE VIEW kinds AS
    SELECT *
    FROM films
    WHERE kind = 'Comedy';

SELECT * FROM kinds;

 code  |           title           | did | date_prod  |  kind  | len
-------+---------------------------+-----+------------+--------+-------
 UA502 | Bananas                   | 105 | 1971-07-13 | Comedy | 01:22
 C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
(2 rows)
   

兼容性

SQL92

SQL92 为 CREATE VIEW 语句规定了一些额外的能力:

CREATE VIEW view [ column [, ...] ]
    AS SELECT expression [ AS colname ] [, ...]
    FROM table [ WHERE condition ]
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
   

完整 SQL92 命令的可选子句有:

CHECK OPTION

此选项与可更新视图有关。视图上的所有 INSERT 和 UPDATE 都会被检查,以确保数据满足定义视图的条件。如果不满足,更新将被拒绝。

LOCAL

在该视图上检查完整性。

CASCADE

在该视图以及任何依赖视图上检查完整性。如果既未指定 CASCADE 也未指定 LOCAL,则假定使用 CASCADE。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.