DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

/usr/man2/cat.l/select_into.l.Z(/usr/man2/cat.l/select_into.l.Z)





NAME

       SELECT INTO - define a new table from the results of a query


SYNOPSIS

       SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
           * | expression [ AS output_name ] [, ...]
           INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
           [ FROM from_item [, ...] ]
           [ WHERE condition ]
           [ GROUP BY expression [, ...] ]
           [ HAVING condition [, ...] ]
           [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
           [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
           [ LIMIT { count | ALL } ]
           [ OFFSET start ]
           [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] ]


DESCRIPTION

       SELECT  INTO  creates  a new table and fills it with data computed by a
       query. The data is not returned to the client, as it is with  a  normal
       SELECT.  The  new table's columns have the names and data types associ-
       ated with the output columns of the SELECT.


PARAMETERS

       TEMPORARY or TEMP
              If specified, the table is created as a temporary  table.  Refer
              to CREATE TABLE [create_table(l)] for details.

       new_table
              The  name  (optionally schema-qualified) of the table to be cre-
              ated.

       All other parameters are described in detail under SELECT  [select(l)].


NOTES

       CREATE  TABLE AS [create_table_as(l)] is functionally similar to SELECT
       INTO. CREATE TABLE AS is the recommended syntax,  since  this  form  of
       SELECT  INTO  is not available in ECPG or PL/pgSQL, because they inter-
       pret the INTO clause differently. Furthermore, CREATE TABLE AS offers a
       superset of the functionality provided by SELECT INTO.

       Prior to PostgreSQL 8.1, the table created by SELECT INTO included OIDs
       by default. In PostgreSQL 8.1, this is not the case -- to include  OIDs
       in  the new table, the default_with_oids configuration variable must be
       enabled. Alternatively, CREATE TABLE AS can be used with the WITH  OIDS
       clause.


EXAMPLES

       Create  a new table films_recent consisting of only recent entries from
       the table films:

       SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';


COMPATIBILITY

       The SQL standard uses SELECT INTO to represent  selecting  values  into
       scalar  variables  of a host program, rather than creating a new table.
       This indeed is the usage found in  ECPG  (see  the  documentation)  and
       PL/pgSQL  (see the documentation).  The PostgreSQL usage of SELECT INTO
       to represent table creation is historical. It is best to use CREATE TA-
       BLE AS for this purpose in new code.


SEE ALSO

       CREATE TABLE AS [create_table_as(l)]

SQL - Language Statements         2005-11-05                     SELECT INTO()

Man(1) output converted with man2html