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


INSERTステートメントは、テーブルに登録するためのステートメントです。
以下は、売上テーブルにデータを登録する記述です。
登録するデータは、お客様番号=CUST03、売上年月=200002、 商品番号=C0000001、単価=1500、数量=1、金額=1500とします。

 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
     INSERT  INTO SALTBL
             CUSTCD,
             SALYM,
             SYOHIN,
             TANKA,
             SURYO,
             KINGAKU
     VALUE   ‘CUST03’,
             ‘200002’,
             ‘C0000001’,
             1500,
             1,
             1500
END-EXEC.
 
(2)登録した結果を判定する
 
EVALUATE SQLCODE
  WHEN   ZERO
         参照できた場合の処理を行う
  WHEN   重複時のコード
         対象のキーが登録済の処理を行う
  WHEN   OTHER
         異常発生時の処理を行う
END-EVALUATE.
 
(1)の部分がSQLステートメントです。
①SQLを記述する場合、先頭に「EXEC SQL」最後に「END-EXEC」
と記述します。
②「INSERT」は、テーブルへ登録する場合に記述します。
③「INTO SALTBL」は、登録するテーブル名(SALTBL)を記述します。
④テーブルの列名(項目名)を記述します。
 通常は、全ての列名を記述する。
 列名と列名に「,」を記述する。(最後の列名の後は「,」を記述しない。
⑤「VALUE」の後に④で記述した列名に対応する値を記述する。
 
(2)はINSERTの結果を判定して、対応する処理を行います。
結果の判定はSQLCODEという項目名の値を判定します。
DBMSの種類によって、SQLCODEの値の意味が異なりますので注意が必要です。
正常に参照できた場合、SQLCODEはZEROになりますので、正常に登録された場合の処理を行います。
キー重複が起きた場合、登録されませんので未登録の場合の処理を行います。
上記いずれでもない場合は、異常状態ですからこれ以上処理を継続することはできません。
一般的な処理は、異常状態を知らせる処理を行って終了します。

 

 


コメントを残す

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