Create Table As
Creates a new table built from data retrieved by a SELECT.
Synopsis
CREATE TABLE table [ ( column [, ...] ) ] AS select
Parameters
tableThe name of the new table to be created.
columnThe name of a column to create; you can specify multiple columns by including their names in a comma-delimited list. There should be the same number of columns specified as are returned by
select.selectA valid
SELECTstatement. The number of targets selected must match the number of columns in the optional column list preceding theASclause.
Results
SELECTThe message returned on successful creation of, and insertion of row data into,
table.ERROR: CREATE TABLE/AS SELECT has mismatched column countThe error returned if the optional list of
columnsin parentheses contains a different number of rows than theselectstatement returns.
Description
Use the CREATE TABLE AS command to create a table from the contents of
result set, such as a query on a table that already exists within the database. Both the
column types, and row data for the new table, come from the SELECT command
specified by select.
Note that, as of PostgreSQL 7.1.x, if you specify the optional column list within
parentheses, you cannot use the asterisk (*) in the select statement.
Example
The following example creates a backup table (aptly named book_backup)
from all of the columns taken from the books table:
booktown=# CREATE TABLE book_backup booktown-# AS SELECT * FROM books; SELECT