NAME
CREATE VIEW - define a new view
SYNOPSIS
CREATE VIEW view [ ( column name list ) ] AS SELECT query
INPUTS
- view
-
The name of a view to be created.
- column name list
-
An optional list of names to be used for columns of the view. If given, these names override the column names that would be deduced from the SQL query.
- 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.
- ERROR: Relation 'view' already exists
-
This error occurs if the view specified already exists in the database.
- NOTICE: Attribute '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 a warning:
CREATE VIEW vista AS SELECT 'Hello World'
whereas this command does not:
CREATE VIEW vista AS SELECT text 'Hello World'
DESCRIPTION
CREATE VIEW will define a view of a table. The view is not physically materialized. Instead, a query rewrite retrieve rule is automatically generated to support retrieve operations on views.
NOTES
Currently, views are read only: the system will not allow an insert, update, or delete on a view. You can get the effect of an updatable view by creating rules that rewrite inserts, etc. on the view into appropriate actions on other tables. For more information see create_rule(l).
Use the DROP VIEW statement to drop views.
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
(2 rows)
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 ]
The optional clauses for the full SQL92 command are:
- 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.