- <REFENTRY ID="SQL-UPDATE">
- <REFMETA>
- <REFENTRYTITLE>
- UPDATE
- </REFENTRYTITLE>
- <REFMISCINFO>SQL - Language Statements</REFMISCINFO>
- </REFMETA>
- <REFNAMEDIV>
- <REFNAME>
- UPDATE
- </REFNAME>
- <REFPURPOSE>
- Replaces values of columns in a table
- </REFPURPOSE>
- </refnamediv>
- <REFSYNOPSISDIV>
- <REFSYNOPSISDIVINFO>
- <DATE>1998-09-24</DATE>
- </REFSYNOPSISDIVINFO>
- <SYNOPSIS>
- UPDATE <REPLACEABLE CLASS="PARAMETER">table</replaceable> SET <REPLACEABLE CLASS="PARAMETER">column</replaceable> = <REPLACEABLE CLASS="PARAMETER">expression</replaceable> [, ...]
- [ 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>
- UPDATE <replaceable class="parameter">#</replaceable>
- </TERM>
- <LISTITEM>
- <PARA>
- Message returned if successful.
- The <replaceable class="parameter">#</replaceable>
- means the number of rows updated.
- If <replaceable class="parameter">#</replaceable>
- is equal 0 no rows are updated.
- </para>
- </LISTITEM>
- </VARLISTENTRY>
- </VARIABLELIST>
- </para>
- </REFSECT2>
- </REFSYNOPSISDIV>
- <REFSECT1 ID="R1-SQL-UPDATE-1">
- <REFSECT1INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT1INFO>
- <TITLE>
- Description
- </TITLE>
- <PARA>
- UPDATE changes the values of the columns specified for
- all rows which satisfy condition. Only the columns
- to be modified need appear as column.
- </para>
- <PARA>
- Array references use the same syntax found in SELECT.
- 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>
- </REFSECT1>
- <REFSECT1 ID="R1-SQL-UPDATE-2">
- <TITLE>
- Usage
- </TITLE>
- <PARA>
- </PARA>
- <ProgramListing>
- --Change word "Drama" with "Dramatic" on column kind:
- --
- UPDATE films
- SET kind = 'Dramatic'
- WHERE kind = 'Drama';
- SELECT * FROM films WHERE kind = 'Dramatic' OR kind = 'Drama';
- 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>
- </REFSECT1>
- <REFSECT1 ID="R1-SQL-UPDATE-3">
- <TITLE>
- Compatibility
- </TITLE>
- <PARA>
- </PARA>
- <REFSECT2 ID="R2-SQL-UPDATE-4">
- <REFSECT2INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT2INFO>
- <TITLE>
- SQL92
- </TITLE>
- <PARA>
- SQL92 defines a different syntax for positioned UPDATE statement:
- <programlisting>
- UPDATE table SET column = expression [, ...]
- WHERE CURRENT OF <replaceable class="parameter">cursor</replaceable>
- </programlisting>
- where <replaceable class="parameter">cursor</replaceable>
- identifies an open cursor.
- </para>
- </refsect2>
- </refsect1>
- </REFENTRY>