.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "UPDATE" "" "2003-08-02" "SQL - 言語" "SQL コマンド"
.SH NAME
UPDATE \- テーブルの行の更新
.SH SYNOPSIS
.sp
.nf
UPDATE [ ONLY ] \fItable\fR SET \fIcol\fR = \fIexpression\fR [, ...]
    [ FROM \fIfromlist\fR ]
    [ WHERE \fIcondition\fR ]
  
.sp
.fi
.SS "入力"
.PP
.TP
\fB\fItable\fB\fR
既存のテーブルの名前です (スキーマ修飾名でも可)。 ONLY が指定された場合、そのテーブルのみが更新されます。 ONLY が指定されていない場合、そのテーブルおよび (存在する場合は) それを継承するすべてのテーブルが更新されます。 継承テーブルがスキャンされることを表すために、テーブル名に * を付けることができますが、現在のバージョンでは、継承テーブルのスキャンはデフォルトで行われます。 (7.1 より前のリリースでは、ONLY がデフォルトでした。) デフォルト設定は、\fBSQL_INHERITANCE\fR 設定オプションで変更できます。
.TP
\fB\fIcolumn\fB\fR
\fItable\fR 内の列名です。
.TP
\fB\fIexpression\fB\fR
列に代入する、有効な式または値です。
.TP
\fB\fIfromlist\fB\fR
WHERE 条件に他のテーブル上の列を指定できるようにする PostgreSQL の非標準的拡張です。
.TP
\fB\fIcondition\fB\fR
WHERE句 の詳細な説明についてはSELECT 文を参照して下さい。
.PP
.SS "出力"
.PP
.TP
\fBUPDATE \fI#\fB\fR
成功した時に返されるメッセージです。\fI#\fR は更新された行数を意味します。\fI#\fRが0の場合は更新された行がなかったことを意味します。
.PP
.SH "説明"
.PP
\fBUPDATE\fR は、条件を満たす全ての行の指定された列の値を変更します。変更されるべき列のみが文内のcolumnsパラメータにある必要があります。
.PP
SELECT [\fBselect\fR(l)] と同じ構文を使って配列を参照します。つまり、1つの配列要素も、ある範囲にわたる配列要素も、配列全体も1つの問い合わせで更新することができます。
.PP
テーブルを変更するためには書き込み権限が必要です。 あわせて、 WHERE条件内で指定した値を持つテーブルへの読み込み権限も必要になります。
.PP
デフォルトで、UPDATEは指定されたテーブルとそのサブテーブルのタプルを更新します。指定されたテーブルのみを更新したい場合はONLY句を使用して下さい。
.SH "使用方法"
.PP
\fBkind\fR 列上の Drama という単語を Dramatic に変更します。
.sp
.nf
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
.sp
.fi
.SH "互換性"
.SS "SQL92"
.PP
SQL92では位置付け型UPDATE文用の異なる構文を定義しています。
.sp
.nf
UPDATE \fItable\fR SET \fIcolumn\fR = \fIexpression\fR [, ...]
    WHERE CURRENT OF \fIcursor\fR
    
.sp
.fi
ここで、\fIcursor\fR はオープン済のカーソルの識別子です。
