PostgreSQL 7.4.3 Documentation
Prev | Fast Backward |  | Fast Forward | Next

# UPDATE

## Name

UPDATE -- update rows of a table

## Synopsis

    UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
        [ FROM fromlist ]
        [ WHERE condition ]

## Description

`UPDATE` changes the values of the specified columns in all rows that satisfy the condition. Only the columns to be modified need be mentioned in the statement; columns not explicitly `SET` retain their previous values.

By default, `UPDATE` will update rows in the specified table and all its subtables. If you wish to only update the specific table mentioned, you must use the `ONLY` clause.

You must have the `UPDATE` privilege on the table to update it, as well as the `SELECT` privilege to any table whose values are read in the expressions or condition.

## Parameters

table

  The name (optionally schema-qualified) of the table to update.

column

  The name of a column in table.

expression

  An expression to assign to the column. The expression may use the old values of this and other columns in the table.

`DEFAULT`

  Set the column to its default value (which will be NULL if no specific default expression has been assigned to it).

fromlist

  A list of table expressions, allowing columns from other tables to appear in the `WHERE` condition and the update expressions.

condition

  An expression that returns a value of type `boolean`. Only rows for which this expression returns `true` will be updated.

## Outputs

On successful completion, an `UPDATE` command returns a command tag of the form

    UPDATE count

The count is the number of rows updated. If count is 0, no rows matched the condition (this is not considered an error).

## Examples

Change the word `Drama` to `Dramatic` in the column `kind` of the table `films`:

    UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';

Adjust temperature entries and reset precipitation to its default value in one row of the table `weather`:

    UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT
      WHERE city = 'San Francisco' AND date = '2003-07-03';

## Compatibility

This command conforms to the SQL standard. The `FROM` clause is a PostgreSQL extension.

Prev | Home | Next
UNLISTEN | Up | VACUUM