pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
CREATE VIEW — 构造一个虚拟表
CREATE VIEWviewAS SELECTquery
view要创建的视图的名称。
query一条 SQL 查询,它将提供视图的列和行。
关于有效参数的更多信息,参见 SELECT 语句。
CREATE视图创建成功时返回的消息。
WARN amcreate: "view" relation already exists如果指定的视图已存在于数据库中,就会出现这个错误。
NOTICE create: attribute named "column" has an unknown type如果你不指定类型,创建出的视图就会带有一个未知类型的列。例如,下面的命令会产生一个错误:
CREATE VIEW vista AS SELECT 'Hello World'
而这条命令则不会:
CREATE VIEW vista AS SELECT 'Hello World'::text
CREATE VIEW 将定义一个表的一个视图。该视图 不会被物理物化。具体来说,会自动生成一条查询重写检索规则来支持对视图的检索操作。
使用 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
SQL92 为 CREATE VIEW 语句规定了一些额外的能力:
CREATE VIEWview[column[, ...] ] AS SELECTexpression[AScolname] [, ...] FROMtable[ WHEREcondition] [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
此选项与可更新视图有关。视图上的所有 INSERT 和 UPDATE 都会被检查,以确保数据满足定义视图的条件。如果不满足,更新将被拒绝。
在该视图上检查完整性。
在该视图以及任何依赖视图上检查完整性。如果既未指定 CASCADE 也未指定 LOCAL,则假定使用 CASCADE。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。