CREATE VIEW
Name
CREATE VIEW — Constructs a virtual tableCREATE VIEW view
AS SELECT query
Inputs
- view
The name of a view to be created.
- query
An SQL query which will provide the columns and rows of the view.
Refer to the SELECT statement for more information about valid arguments.
Outputs
- CREATE
The message returned if the view is successfully created.
- WARN amcreate: "view" relation already exists
This error occurs if the view specified already exists in the database.
- NOTICE create: attribute named "column" has an unknown type
The view will be created having a column with an unknown type if you do not specify it. For example, the following command gives an error:
CREATE VIEW vista AS SELECT 'Hello World'
whereas this command does not:CREATE VIEW vista AS SELECT 'Hello World'::text
Description
CREATE VIEW will define a view of a table. This view is not physically materialized. Specifically, a query rewrite retrieve rule is automatically generated to support retrieve operations on views.
Notes
Use the DROP VIEW statement to drop views.
Bugs
Currently, views are read only.
Usage
Create a view consisting of all Comedy films:
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
Compatibility
SQL92
SQL92 specifies some additional capabilities for the CREATE VIEW statement:
CREATE VIEW view [ column [, ...] ]
AS SELECT expression [AS colname] [, ...]
FROM table
[ WHERE condition ]
[ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
- CHECK OPTION
This option is to do with updatable views. All INSERTs and UPDATEs on the view will be checked to ensure data satisfy the view-defining condition. If they do not, the update will be rejected.
- LOCAL
Check for integrity on this view.
- CASCADE
Check for integrity on this view and on any dependent view. CASCADE is assumed if neither CASCADE nor LOCAL is specified.
Report a documentation issue
Read the upstream documentation. For corrections, first check the current manual.