manpagez: man pages & more
man select_into(l)
Home | html | info | man
SELECT INTO()                    SQL Commands                    SELECT INTO()




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 ] [ NULLS { FIRST | LAST } ] [, ...] ]
           [ 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 in the  documentation)  and
       PL/pgSQL  (see  in  the documentation).  The PostgreSQL usage of SELECT
       INTO to represent table creation is historical. It is best to use  CRE-
       ATE TABLE AS for this purpose in new code.


SEE ALSO

       CREATE TABLE AS [create_table_as(l)]



SQL - Language Statements         2008-09-19                     SELECT INTO()

postgresql 8.3.4 - Generated Sun Oct 5 06:29:49 CDT 2008
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.