高速トランザクション処理基盤 TP1/EE/Extended Data Cache SQLプログラミング
![[目次]](FIGURE/CONTENT.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
指定した探索条件を満たす表内の行の,指定した列の値を更新します。
UPDATE文::=
UPDATE 更新対象表
SET SET句〔,SET句〕…
〔WHERE 探索条件〕
更新対象表::=表名
SET句::={更新対象列=更新値|ROW=行更新値}
更新対象列::=列名
更新値::=値指定
行更新値::=:埋め込み変数〔:標識変数〕
|
更新する表の表名を指定します。
スキーマ名に"MASTER"は指定できません。
更新対象列::=列名
- 列名
- 更新する列の名称を指定します。
更新値::=値指定
- 値指定
- 値指定については,「2.10 値指定」を参照してください。
行単位でデータを更新する場合に指定します。ROWは行全体を意味し,これを指定すると,行全体を一つのデータと見なされます。ROWを指定する場合の規則を次に示します。
- 更新するデータに指定する埋め込み変数は,各列のデータ型に関係なく,ROWに対応する埋め込み変数(ただし,構造体中に境界調整による空きがあってはいけません)にしてください。また,データ長は,行長(各列のデータ長の総和)にしてください。データ長の計算方法については,「3.2(3)規則」を参照してください。
- 更新値は,更新対象列と変換または比較できるデータ型にしてください。
- 更新値に埋め込み変数を指定する場合,仮定されるデータ型およびデータ長は更新対象列のデータ型およびデータ長になります。
- DECIMAL型のデータでINTEGER型の列を更新する場合,端数(小数)部分は切り捨てられます。
また,DECIMAL型のデータでDECIMAL型の列を更新する場合,列の位取りより下位のけた部分が切り捨てられます。
- 更新対象列の値として,表の定義時に指定した長さ以上の文字データは入力できません。
- 数データを更新する場合,範囲外の数値を入力することはできません。
- 固定長文字列の列を更新するデータが列の長さより短い場合は,左詰めにされて,余りの部分に半角空白が格納されます。
- TIMESTAMP型のデータでTIMESTAMP型の列を更新する場合,列の小数秒のけた数より下位のけた部分が切り捨てられます。更新するデータの小数秒のけた数より列の小数秒のけた数が多い場合,0を補って格納されます。
- SET句は,最大3000個指定できます。
- 更新の対象となる行がない場合は,SQLCODEに100が設定されます。
- 同じ列名を更新対象列に重複して指定できません。またROWを指定する場合は,SET句を二つ以上指定できません。
在庫表(ZAIKO)の商品コード列(SCODE)が302Sの商品の在庫量列(ZSURYO)を100に変更します。
UPDATE "ZAIKO"
SET "ZSURYO" = 100
WHERE "SCODE" = '302S'
All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd.