web-dev-qa-db-ja.com

DB2で1つのレコードのみを更新する方法は?

DB2では、 SELECT FROM UPDATE 、更新を1つのトランザクションに含める+選択。
しかし、トランザクションごとに1つのレコードのみを更新する必要があります。

MySQLのLIMIT オプションのUPDATE句に慣れている

更新できる行数に制限を設ける

DB2のUPDATE参照 で似たようなものを探しましたが、成功しませんでした。

DB2で同様のことをどのように達成できますか?

4
Marius Butuc

実際には、あなたが持っているリンク上で、あなたはできるレコードを1つだけ更新することを述べています、あなたはそうするためにカーソルを使う必要があるだけです。次に DECLARE CURSORページ を示します。

したがって、最初に、必要なものを提供するselectステートメントを使用して、テーブルからカーソルを宣言する必要があります。

DECLARE C1 CURSOR
FOR (SELECT * FROM MYTABLE WHERE...);

目的のカーソル内のレコードの値に移動します。

次に、言及したリンクを使用して、カーソルに対してステートメントを更新します。

UPDATE MYTABLE 
SET MYCOLUMN = ?
WHERE CURRENT OF C1;

COMMITを発行する必要があると思います(DECLARE CURSOR句で特に指定しない限り、カーソルを閉じます)。

あなたが持っているリンクと私が持っているリンクのドキュメントをチェックしてください。これを実行するには、ストアドプロシージャを使用する必要がある場合があります。

3
Chris Aldrich