UPDATE

名前

UPDATE -- テーブルの行を更新

概要

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

説明

UPDATE は、条件を満たす全ての行の指定された列の値を変更します。 変更されるべき列のみが文内のcolumnsパラメータにある必要があります。 SET にて明示的に設定されなかった列の値は変更されません。

デフォルトで、UPDATEは指定されたテーブルとそのサブテーブルのタプルを更新します。 指定されたテーブルのみを更新したい場合は ONLY 句を使用して下さい。

テーブルを変更するためにはUPDATE権限が必要です。 あわせて、 expressionconditionで読み込まれるテーブルへの SELECT 権限も必要になります。

パラメータ

table

更新対象のテーブルの名前です (スキーマ修飾名でも可)。

column

table内の列名です。

expression

列に代入する式です。 テーブル内の対象列やその他の列の古い値を式に使用することができます。

DEFAULT

列にそのデフォルト値を設定します。 (特定のデフォルト式が列に割り当てられていない場合はNULLになります。)

fromlist

WHERE 条件や更新用の式に他のテーブル上の列を指定できるようにする、テーブル式の集合です。

condition

boolean型の値を返す式です。 この式がtrueを返す行のみが更新されます。

出力

正常に処理が終ると、UPDATEコマンドは以下の形式のコマンドタグを返します。

UPDATE count

count は更新された行数を意味します。 countが0の場合はconditionに一致する行がなかったことを意味します。 (これはエラーとはみなされません。)

filmsテーブルのkind 列にある Drama という単語を Dramatic に変更します。

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

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';

互換性

このコマンドは標準SQLに準拠しています。 FROM 句は PostgreSQL の拡張です。