INSERT(l)                                               INSERT(l)

       INSERT - Inserts new rows into a table

       INSERT INTO table [ ( column [, ...] ) ]
           { VALUES ( expression [, ...] ) | SELECT query }

       table  The name of an existing table.

       column The name of a column in table.

              A valid expression or value to assign to column.

       query  A  valid query. Refer to the SELECT statement for a
              further description of valid arguments.

       INSERT oid 1
              Message returned if only one row was inserted.  oid
              is the numeric OID of the inserted row.

       INSERT 0 #
              Message   returned  if  more  than  one  rows  were
              inserted.  # is the number of rows inserted.

       INSERT allows one to insert  new  rows  into  a  class  or
       table. One can insert a single row at time or several rows
       as a result of a query.  The columns in  the  target  list
       may be listed in any order.

       Each  column  not  present  in  the  target  list  will be
       inserted using a default value, either a declared  DEFAULT
       value  or  NULL.  Postgres will reject the new column if a
       NULL is inserted into a column declared NOT NULL.

       If the expression for each column is not  of  the  correct
       data type, automatic type coercion will be attempted.

       You  must  have  insert  privilege  to a table in order to
       append to it, as well as select  privilege  on  any  table
       specified in a WHERE clause.

       Insert a single row into table films:

           ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');

       In this second example the column date_prod is omitted and
       therefore it will have the default value of NULL:

       INSERT INTO films (code, title, did, date_prod, kind)
           VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');

       Insert a single row into  table  distributors;  note  that
       only  column  name is specified, so the omitted column did
       will be assigned its default value:

       INSERT INTO distributors (name) VALUES ('British Lion');

       Insert several rows into table films from table tmp:

       INSERT INTO films SELECT * FROM tmp;

       Insert into arrays (refer to The PostgreSQL  User's  Guide
       for further information about arrays):

       -- Create an empty 3x3 gameboard for noughts-and-crosses
       -- (all of these queries create the same board attribute)
       INSERT INTO tictactoe (game, board[1:3][1:3])
           VALUES (1,'{{"","",""},{},{"",""}}');
       INSERT INTO tictactoe (game, board[3][3])
           VALUES (2,'{}');
       INSERT INTO tictactoe (game, board)
           VALUES (3,'{{,,},{,,},{,,}}');

       INSERT  is  fully compatible with SQL92.  Possible limita-
       tions in features of the query clause are  documented  for

SQL - Language Statements 15 August 1999                        1