UPDATE

Name

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

Synopsis

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

入力

table

既存テーブルの名前。

column

table 内の カラム名。

expression

カラムに代入する有効な、式または値。

fromlist

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

condition

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

出力

UPDATE #

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

説明

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

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 は オープン済のカーソルの識別子です。