ページのトップに戻る
Symfoware Server SQLビギナーズガイド

4.5 カーソルを使用してデータを更新する

カーソルを位置づけた行のデータを更新する場合は、UPDATE文を使用します。UPDATE文に使用するカーソルは更新可能カーソルであることが必要です。UPDATE文の指定例を以下に示します。

1

図4.7 FETCH文によるカーソルの位置づけの例”でカーソルを位置づけた行について、在庫数量を“150”に更新します。

UPDATE  在庫管理.在庫表  SET  在庫数量 = 150
              (1)                   (2)

          WHERE CURRENT OF 在庫表カーソル
                                (3)

(1) 表名

(2) 設定句

(3) カーソル名

図4.9 カーソルを使用したデータの更新の例(カーソル表に含まれる列を更新する場合)

備考. 更新の前後でカーソルの位置は変化しません。


更新する列名および更新する値は、設定句で指定します。設定句の指定方法は、“3.2 データベースのデータを更新する”で説明したのと同じです。なお、更新する列はカーソル表に含まれない列でもかまいません。この例を以下に示します。


2

図4.7 FETCH文によるカーソルの位置づけの例”のカーソルをさらに移動した後、製品番号をホスト変数“ITMNO”の値に、製品名を“MDコンポ”に、在庫数量を元の値の2倍に、そして倉庫番号をNULL値に更新します。ここでは、ホスト変数“ITMNO”には“340”が設定されているとします。

UPDATE 在庫管理.在庫表

SET 製品番号 = :ITMNO, 製品名 = N'MDコンポ',

在庫数量 = 在庫数量 * 2, 倉庫番号 = NULL

WHERE CURRENT OF 在庫表カーソル

図4.10 カーソルを使用したデータの更新の例(カーソル表に含まれない列を更新する場合)

備考. 更新の前後でカーソルの位置は変化しません。


UPDATE文によるデータの更新には、カーソルを使用しない方法もあります。その方法は、“3.2 データベースのデータを更新する”で説明しています。

なお、ここで説明したUPDATE文によるデータの更新は、カーソルの位置づけにより更新対象の行を特定することから、“UPDATE文:位置づけ”と呼びます。