UPDATE

Name

UPDATE  --  テーブル内の列の値を置き換えます。

Synopsis

UPDATE table SET col = expression [, ...]
    [ FROM fromlist ]
    [ WHERE condition ]
  

入力

table

既存のテーブル名。

column

table 内の 列名。

expression

列に代入する有効な、式または値。

fromlist

WHERE 条件に他のテーブル上の列を指定できるように する Postgres の非標準的 拡張。

condition

WHERE 句の詳細な説明については SELECT 文を参照して下 さい。

出力

UPDATE #

成功時に返されるメッセージ。 # は更新 された行数を意味します。 # が 0 の 場合は更新された行がなかったことを意味します。

説明

UPDATE は、条件を満たす全ての行の指定され た列の値を変更します。 変更されるべき列のみが 文内の columns パラメータになけれ ばなりません。

SELECT と同じ構文を使って配列を参照します。 つまり、1 つの配列要素も、ある範囲にわたる配列要素も、配列全体 も 1 つの問い合わせで更新することができます。

テーブルを変更するためには書き込み権限が必要です。同様に WHERE 条件内で指定した値を持つテーブルへの読み込み権限も 必要になります。

使用法

kind 列上の "Drama" という単語を "Dramatic" に変更します。

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

互換性

SQL92

SQL92 では位置付け型 UPDATE 文用の異なる構文 を定義しています。

UPDATE table SET column = expression [, ...]
    WHERE CURRENT OF cursor
    
ここで、cursor は オープン済のカーソルの識別子です。