Create Table As
Creates a new table built from data retrieved by a SELECT.
Synopsis
CREATE TABLE table [ ( column [, ...] ) ] AS select
Parameters
table
The name of the new table to be created.
column
The 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
.select
A valid
SELECT
statement. The number of targets selected must match the number of columns in the optional column list preceding theAS
clause.
Results
SELECT
The message returned on successful creation of, and insertion of row data into,
table
.ERROR: CREATE TABLE/AS SELECT has mismatched column count
The error returned if the optional list of
columns
in parentheses contains a different number of rows than theselect
statement 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
Get Practical PostgreSQL now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.