aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/insert.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/insert.sgml')
-rw-r--r--doc/src/sgml/ref/insert.sgml384
1 files changed, 202 insertions, 182 deletions
diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml
index 2d90cc65fe0..b5e2c0241ea 100644
--- a/doc/src/sgml/ref/insert.sgml
+++ b/doc/src/sgml/ref/insert.sgml
@@ -12,188 +12,208 @@ INSERT
<REFPURPOSE>
Inserts new rows into a table
</REFPURPOSE>
-<REFSYNOPSISDIV>
-<REFSYNOPSISDIVINFO>
-<DATE>1998-09-23</DATE>
-</REFSYNOPSISDIVINFO>
-<SYNOPSIS>
-INSERT INTO <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> [ ( <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE> [, ...] ) ]
- { VALUES ( <REPLACEABLE CLASS="PARAMETER">expression</REPLACEABLE> [, ...] ) | SELECT <REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE> }
-</SYNOPSIS>
-
-<REFSECT2 ID="R2-SQL-INSERT-1">
-<REFSECT2INFO>
-<DATE>1998-09-23</DATE>
-</REFSECT2INFO>
-<TITLE>
-Inputs
-</TITLE>
-<PARA>
-</PARA>
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-The name of an existing table.
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-The name of a column in <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>.
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">expression</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-A valid expression or value to assign to <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE>.
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-A valid query. Refer to the SELECT statement for a further description
- of valid arguments.
-
-</VARIABLELIST>
-
-</REFSECT2>
-
-<REFSECT2 ID="R2-SQL-INSERT-2">
-<REFSECT2INFO>
-<DATE>1998-09-23</DATE>
-</REFSECT2INFO>
-<TITLE>
-Outputs
-</TITLE>
-<PARA>
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<ReturnValue>INSERT <replaceable>oid</replaceable></ReturnValue> 1
-</TERM>
-<LISTITEM>
-<PARA>
-Message returned if only one row was inserted.
-<ReturnValue><replaceable>oid</replaceable></ReturnValue>
- is the row identifier.
-
-<VARLISTENTRY>
-<TERM>
-<ReturnValue>INSERT 0 <replaceable>#</replaceable></ReturnValue>
-</TERM>
-<LISTITEM>
-<PARA>
-Message returned if more than one rows were inserted.
-<ReturnValue><replaceable>#</replaceable></ReturnValue>
- is the number of rows inserted.
-
-</VARIABLELIST>
-
-</REFSECT2>
-</REFSYNOPSISDIV>
-
-<REFSECT1 ID="R1-SQL-INSERT-1">
-<REFSECT1INFO>
-<DATE>1998-09-02</DATE>
-</REFSECT1INFO>
-<TITLE>
-Description
-</TITLE>
-<PARA>
- INSERT allows one to insert new rows into a 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.
- In every column not present in the target list will be inserted
- the default value, if column has not a declared default value
- it will be assumed as NULL. If the expression for each column
- is not of the correct data type, automatic type coercion will be
- attempted.
-
-<para>
- 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.
-
-<REFSECT1 ID="R1-SQL-INSERT-2">
-<TITLE>
-Usage
-</TITLE>
-<PARA>
-<ProgramListing>
---Insert a single row into table films;
---(in the second example the column date_prod is omitted
---therefore will be stored in it a default value of NULL):
---
-INSERT INTO films VALUES
- ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
-
-INSERT INTO films (code, title, did, date_prod, kind)
- VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
-</ProgramListing>
-
-<ProgramListing>
---Insert a single row into table distributors, note that
---only column "name" is specified, to the non specified
---column "did" will be assigned its default value:
---
-INSERT INTO distributors (name) VALUES ('British Lion');
-</ProgramListing>
-
-<ProgramListing>
---Insert several rows into table films from table tmp:
---
-INSERT INTO films
- SELECT * FROM tmp;
-</ProgramListing>
-
-<ProgramListing>
---Insert into arrays:
---Create an empty 3x3 gameboard for noughts-and-crosses
---(all of these queries create the same board attribute)
---(Refer to the <citetitle>PostgreSQL User's Guide</citetitle> for further
---information about arrays).
-
-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,'{{,,},{,,},{,,}}');
-</ProgramListing>
-
-</REFSECT1>
-
-<REFSECT1 ID="R1-SQL-INSERT-3">
-<TITLE>
-Compatibility
-</TITLE>
-<PARA>
-</PARA>
-
-<REFSECT2 ID="R2-SQL-INSERT-4">
-<REFSECT2INFO>
-<DATE>1998-09-23</DATE>
-</REFSECT2INFO>
-<TITLE>
-SQL92
-</TITLE>
-<PARA>
-The INSERT statement is fully compatible with <acronym>SQL92</acronym>.
-Possible limitations in features of the
-<REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE>
-clause are documented for the SELECT statement.
-
+ </refnamediv>
+ <REFSYNOPSISDIV>
+ <REFSYNOPSISDIVINFO>
+ <DATE>1998-09-23</DATE>
+ </REFSYNOPSISDIVINFO>
+ <SYNOPSIS>
+ INSERT INTO <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> [ ( <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE> [, ...] ) ]
+ { VALUES ( <REPLACEABLE CLASS="PARAMETER">expression</REPLACEABLE> [, ...] ) | SELECT <REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE> }
+ </SYNOPSIS>
+
+ <REFSECT2 ID="R2-SQL-INSERT-1">
+ <REFSECT2INFO>
+ <DATE>1998-09-23</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Inputs
+ </TITLE>
+ <PARA>
+ </PARA>
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of an existing table.
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of a column in <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">expression</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ A valid expression or value to assign to <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ A valid query. Refer to the SELECT statement for a further description
+ of valid arguments.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </VARIABLELIST>
+
+ </REFSECT2>
+
+ <REFSECT2 ID="R2-SQL-INSERT-2">
+ <REFSECT2INFO>
+ <DATE>1998-09-23</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Outputs
+ </TITLE>
+ <PARA>
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <ReturnValue>INSERT <replaceable>oid</replaceable></ReturnValue> 1
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Message returned if only one row was inserted.
+ <ReturnValue><replaceable>oid</replaceable></ReturnValue>
+ is the numeric <acronym>OID</acronym> of the inserted row.
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ <ReturnValue>INSERT 0 <replaceable>#</replaceable></ReturnValue>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Message returned if more than one rows were inserted.
+ <ReturnValue><replaceable>#</replaceable></ReturnValue>
+ is the number of rows inserted.
+ </para>
+ </listitem>
+ </varlistentry>
+ </VARIABLELIST>
+ </para>
+ </REFSECT2>
+ </REFSYNOPSISDIV>
+
+ <REFSECT1 ID="R1-SQL-INSERT-1">
+ <REFSECT1INFO>
+ <DATE>1998-09-02</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ Description
+ </TITLE>
+ <PARA>
+ INSERT allows one to insert new rows into a 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.
+ In every column not present in the target list will be inserted
+ the default value, if column has not a declared default value
+ it will be assumed as NULL. If the expression for each column
+ is not of the correct data type, automatic type coercion will be
+ attempted.
+ </para>
+ <para>
+ 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.
+ </para>
+ </refsect1>
+
+ <REFSECT1 ID="R1-SQL-INSERT-2">
+ <TITLE>
+ Usage
+ </TITLE>
+ <PARA>
+ <ProgramListing>
+ --Insert a single row into table films;
+ --(in the second example the column date_prod is omitted
+ --therefore will be stored in it a default value of NULL):
+ --
+ INSERT INTO films VALUES
+ ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
+
+ INSERT INTO films (code, title, did, date_prod, kind)
+ VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
+ </ProgramListing>
+
+ <ProgramListing>
+ --Insert a single row into table distributors, note that
+ --only column "name" is specified, to the non specified
+ --column "did" will be assigned its default value:
+ --
+ INSERT INTO distributors (name) VALUES ('British Lion');
+ </ProgramListing>
+
+ <ProgramListing>
+ --Insert several rows into table films from table tmp:
+ --
+ INSERT INTO films
+ SELECT * FROM tmp;
+ </ProgramListing>
+
+ <ProgramListing>
+ --Insert into arrays:
+ --Create an empty 3x3 gameboard for noughts-and-crosses
+ --(all of these queries create the same board attribute)
+ --(Refer to the <citetitle>PostgreSQL User's Guide</citetitle> for further
+ --information about arrays).
+
+ 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,'{{,,},{,,},{,,}}');
+ </ProgramListing>
+ </para>
+ </REFSECT1>
+
+ <REFSECT1 ID="R1-SQL-INSERT-3">
+ <TITLE>
+ Compatibility
+ </TITLE>
+ <PARA>
+ </PARA>
+
+ <REFSECT2 ID="R2-SQL-INSERT-4">
+ <REFSECT2INFO>
+ <DATE>1998-09-23</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ SQL92
+ </TITLE>
+ <PARA>
+ The INSERT statement is fully compatible with <acronym>SQL92</acronym>.
+ Possible limitations in features of the
+ <REPLACEABLE CLASS="PARAMETER">query</REPLACEABLE>
+ clause are documented for the SELECT statement.
+ </para>
+ </refsect2>
+ </refsect1>
</REFENTRY>
<!--