データベースのテーブル操作/UPDATE


【UPDATEステートメント】
 
UPDATEステートメントは、テーブルのデータを更新するためのステートメントです。
 
売上テーブルから任意のお客様番号、売上年月、商品コードをキーとして数量と金額を更新するSQLを記述してみます。
 
キーは、お客様番号=CUST01、売上年月=200001、商品コード=A0000001。
 
更新する列名と値は、数量=20、金額=20000とします。
 

SALTBL(売上テーブル)

お客様番号 売上年月 商品番号 単価 数量 金額
CUSTCD(6桁) SALYM(6桁) SYOHIN(8桁) TANKA(6桁) SURYO(6桁) KINGAKU(6桁)
CUST01 200001 A0000001 1000 10 10000
CUST01 200001 B0000001 2000 10 20000
CUST02 200001 A0000001 3000 10 30000
(1)売上テーブルを更新するSQL
 
EXEC SQL
     UPDATE  SALTBL
       SET
             SURYO   = 20,
             KINGAKU = 20000
     WHERE   CUSTCD = ‘CUST01’
       AND   SALYM  = ‘200001’
       AND   SYOHIN = ‘A0000001’
END-EXEC.
 
(2)登録した結果を判定する
 
EVALUATE SQLCODE
  WHEN   ZERO
         更新できた場合の処理を行う
  WHEN   OTHER
         異常発生時の処理を行う
END-EVALUATE.
 
(1)の部分がSQLステートメントです。
 
①SQLを記述する場合、先頭に「EXEC SQL」最後に「END-EXEC」
と記述します。
 
②「UPDATE」は、テーブルを更新する場合に記述します。
 
③「SALTBL」は、更新するテーブル名(SALTBL)を記述します。
 
④SETは、更新するテーブルの列名(項目名)と値を記述します。
 複数の列名を更新する場合、「,」を記述して次の列名を記述します。(最後の列名の後は「,」を記述しない。
 
⑤「WHERE」は、更新する行を特定するためのキーの記述です。
 
(2)はUPDATEの結果を判定して、対応する処理を行います。
  結果の判定はSQLCODEという項目名の値を判定します。
  DBMSの種類によって、SQLCODEの値の意味が異なりますので注意が必要です。
 
①正常に更新できた場合、SQLCODEはZEROになりますので、正常に更新された場合の処理を行います。
 
②WHEREで記述したキーが存在しない場合、SQLCODEは-100になりますので、更新するデータが存在しない場合の処理を行います。
 
③上記以外いずれでもない場合は、異常状態ですからこれ以上処理を継続することはできません。
 一般的な処理は、異常状態を知らせる処理を行って終了します。
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です