1999-07-22 17:09:15 +02:00
|
|
|
<!--
|
2001-05-27 11:59:30 +02:00
|
|
|
$Header: /cvsroot/pgsql/doc/src/sgml/ref/update.sgml,v 1.15 2001/05/27 09:59:28 petere Exp $
|
1999-07-22 17:09:15 +02:00
|
|
|
Postgres documentation
|
|
|
|
-->
|
|
|
|
|
1999-07-14 22:32:59 +02:00
|
|
|
<refentry id="SQL-UPDATE">
|
|
|
|
<refmeta>
|
2001-05-27 11:59:30 +02:00
|
|
|
<refentrytitle id="SQL-UPDATE-TITLE">UPDATE</refentrytitle>
|
1999-07-14 22:32:59 +02:00
|
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
|
|
<refname>
|
|
|
|
UPDATE
|
|
|
|
</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Replaces values of columns in a table
|
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
|
|
<refsynopsisdivinfo>
|
1999-07-22 17:09:15 +02:00
|
|
|
<date>1999-07-20</date>
|
1999-07-14 22:32:59 +02:00
|
|
|
</refsynopsisdivinfo>
|
|
|
|
<synopsis>
|
2000-06-09 03:44:34 +02:00
|
|
|
UPDATE [ ONLY ] <replaceable class="PARAMETER">table</replaceable> SET <replaceable class="PARAMETER">col</replaceable> = <replaceable class="PARAMETER">expression</replaceable> [, ...]
|
1999-07-14 22:32:59 +02:00
|
|
|
[ FROM <replaceable class="PARAMETER">fromlist</replaceable> ]
|
|
|
|
[ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
|
|
|
|
</synopsis>
|
|
|
|
|
|
|
|
<refsect2 id="R2-SQL-UPDATE-1">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-09-24</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
Inputs
|
|
|
|
</title>
|
|
|
|
<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 column.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><replaceable class="PARAMETER">fromlist</replaceable></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
A <productname>Postgres</productname>
|
|
|
|
non-standard extension to allow columns
|
|
|
|
from other tables to appear in the WHERE condition.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><replaceable class="PARAMETER">condition</replaceable></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Refer to the SELECT statement for a further description
|
|
|
|
of the WHERE clause.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
<refsect2 id="R2-SQL-UPDATE-2">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-09-24</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
Outputs
|
|
|
|
</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><computeroutput>
|
|
|
|
UPDATE <replaceable class="parameter">#</replaceable>
|
|
|
|
</computeroutput></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Message returned if successful.
|
|
|
|
The <replaceable class="parameter">#</replaceable>
|
|
|
|
means the number of rows updated.
|
|
|
|
If <replaceable class="parameter">#</replaceable>
|
2000-10-05 21:57:23 +02:00
|
|
|
is 0 no rows are updated.
|
1999-07-14 22:32:59 +02:00
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
<refsect1 id="R1-SQL-UPDATE-1">
|
|
|
|
<refsect1info>
|
|
|
|
<date>1998-09-24</date>
|
|
|
|
</refsect1info>
|
|
|
|
<title>
|
|
|
|
Description
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
<command>UPDATE</command> changes the values of the columns specified for
|
|
|
|
all rows which satisfy condition. Only the columns
|
1999-07-22 17:09:15 +02:00
|
|
|
to be modified need appear as columns in the statement.
|
1999-07-14 22:32:59 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
1999-07-22 17:09:15 +02:00
|
|
|
Array references use the same syntax found in
|
2000-12-26 00:15:27 +01:00
|
|
|
<xref linkend="sql-select" endterm="sql-select-title">.
|
1999-07-14 22:32:59 +02:00
|
|
|
That is, either single array elements, a range of array
|
|
|
|
elements or the entire array may be replaced with a single
|
|
|
|
query.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
You must have write access to the table in order to modify
|
|
|
|
it, as well as read access to any table whose values are
|
|
|
|
mentioned in the WHERE condition.
|
|
|
|
</para>
|
2000-06-09 03:44:34 +02:00
|
|
|
|
|
|
|
<para>
|
|
|
|
By default UPDATE will update tuples in the table specified
|
2001-01-14 00:58:55 +01:00
|
|
|
and all its sub-tables. If you wish to only update the
|
2000-06-09 03:44:34 +02:00
|
|
|
specific table mentioned, you should use the ONLY clause.
|
|
|
|
</para>
|
1999-07-14 22:32:59 +02:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1 id="R1-SQL-UPDATE-2">
|
|
|
|
<title>
|
|
|
|
Usage
|
|
|
|
</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Change word "Drama" with "Dramatic" on column kind:
|
|
|
|
|
2000-03-26 20:32:30 +02:00
|
|
|
<programlisting>
|
2000-07-22 04:39:10 +02:00
|
|
|
UPDATE films
|
|
|
|
SET kind = 'Dramatic'
|
|
|
|
WHERE kind = 'Drama';
|
|
|
|
SELECT *
|
|
|
|
FROM films
|
|
|
|
WHERE kind = 'Dramatic' OR kind = 'Drama';
|
1998-09-01 17:53:09 +02:00
|
|
|
|
2000-03-26 20:32:30 +02:00
|
|
|
code | title | did | date_prod | kind | len
|
|
|
|
-------+---------------+-----+------------+----------+-------
|
|
|
|
BL101 | The Third Man | 101 | 1949-12-23 | Dramatic | 01:44
|
|
|
|
P_302 | Becket | 103 | 1964-02-03 | Dramatic | 02:28
|
|
|
|
M_401 | War and Peace | 104 | 1967-02-12 | Dramatic | 05:57
|
|
|
|
T_601 | Yojimbo | 106 | 1961-06-16 | Dramatic | 01:50
|
|
|
|
DA101 | Das Boot | 110 | 1981-11-11 | Dramatic | 02:29
|
|
|
|
</programlisting>
|
1999-07-14 22:32:59 +02:00
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1 id="R1-SQL-UPDATE-3">
|
|
|
|
<title>
|
|
|
|
Compatibility
|
|
|
|
</title>
|
|
|
|
|
|
|
|
<refsect2 id="R2-SQL-UPDATE-4">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-09-24</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
SQL92
|
|
|
|
</title>
|
|
|
|
<para>
|
1999-07-22 17:09:15 +02:00
|
|
|
<acronym>SQL92</acronym> defines a different syntax for
|
|
|
|
the positioned UPDATE statement:
|
1999-07-14 22:32:59 +02:00
|
|
|
|
|
|
|
<synopsis>
|
2000-04-11 07:39:15 +02:00
|
|
|
UPDATE <replaceable>table</replaceable> SET <replaceable>column</replaceable> = <replaceable>expression</replaceable> [, ...]
|
1999-07-14 22:32:59 +02:00
|
|
|
WHERE CURRENT OF <replaceable class="parameter">cursor</replaceable>
|
|
|
|
</synopsis>
|
|
|
|
|
|
|
|
where <replaceable class="parameter">cursor</replaceable>
|
|
|
|
identifies an open cursor.
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
|
|
Local variables:
|
|
|
|
mode: sgml
|
|
|
|
sgml-omittag:nil
|
|
|
|
sgml-shorttag:t
|
|
|
|
sgml-minimize-attributes:nil
|
|
|
|
sgml-always-quote-attributes:t
|
|
|
|
sgml-indent-step:1
|
|
|
|
sgml-indent-data:t
|
|
|
|
sgml-parent-document:nil
|
|
|
|
sgml-default-dtd-file:"../reference.ced"
|
|
|
|
sgml-exposed-tags:nil
|
|
|
|
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
|
|
sgml-local-ecat-files:nil
|
|
|
|
End:
|
|
|
|
-->
|