.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "UPDATE" "" "2004-06-19" "SQL - 言語" "SQL コマンド"
.SH NAME
UPDATE \- テーブルの行を更新

.SH SYNOPSIS
.sp
.nf
UPDATE [ ONLY ] \fItable\fR SET \fIcolumn\fR = { \fIexpression\fR | DEFAULT } [, ...]
    [ FROM \fIfromlist\fR ]
    [ WHERE \fIcondition\fR ]
.sp
.fi
.SH "説明"
.PP
\fBUPDATE\fR は、条件を満たす全ての行の指定された列の値を変更します。
変更されるべき列のみが文内のcolumnsパラメータにある必要があります。
SET にて明示的に設定されなかった列の値は変更されません。
.PP
デフォルトで、\fBUPDATE\fRは指定されたテーブルとそのサブテーブルのタプルを更新します。
指定されたテーブルのみを更新したい場合は ONLY 句を使用して下さい。
.PP
テーブルを変更するためにはUPDATE権限が必要です。 
あわせて、 \fIexpression\fRや\fIcondition\fRで読み込まれるテーブルへの SELECT 権限も必要になります。
.SH "パラメータ"
.TP
\fB\fItable\fB\fR
更新対象のテーブルの名前です (スキーマ修飾名でも可)。 
.TP
\fB\fIcolumn\fB\fR
\fItable\fR内の列名です。
.TP
\fB\fIexpression\fB\fR
列に代入する式です。
テーブル内の対象列やその他の列の古い値を式に使用することができます。
.TP
\fBDEFAULT\fR
列にそのデフォルト値を設定します。
(特定のデフォルト式が列に割り当てられていない場合はNULLになります。)
.TP
\fB\fIfromlist\fB\fR
WHERE 条件や更新用の式に他のテーブル上の列を指定できるようにする、テーブル式の集合です。
.TP
\fB\fIcondition\fB\fR
\fBboolean\fR型の値を返す式です。
この式がtrueを返す行のみが更新されます。
.SH "出力"
.PP
正常に処理が終ると、\fBUPDATE\fRコマンドは以下の形式のコマンドタグを返します。
.sp
.nf
UPDATE \fIcount\fR
.sp
.fi
\fIcount\fR は更新された行数を意味します。
\fIcount\fRが0の場合は\fIcondition\fRに一致する行がなかったことを意味します。
(これはエラーとはみなされません。)
.SH "例"
.PP
filmsテーブルの\fBkind\fR 列にある Drama という単語を Dramatic に変更します。
.sp
.nf
UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
.sp
.fi
.PP
weatherテーブルのある行に対し、気温項目を調整し、降水量をデフォルト値に戻します。
.sp
.nf
UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT
  WHERE city = 'San Francisco' AND date = '2003-07-03';
.sp
.fi
.SH "互換性"
.PP
このコマンドは標準SQLに準拠しています。
FROM 句は PostgreSQL の拡張です。
