2014年3月28日金曜日

Oracleで別テーブルの値を参照してデータを更新するときの簡単な方法

マスタからあるKEYでトランザクションを結合して、
マスタの値を一括更新したい!なんて時、ありますね。

そんな時、昔書いていた方法を探していたら、別のアプローチを見つけました。

今まで知らなかったのが勿体ない。
というか、何事も片手間でやってはいけないな。と反省です。


実装例

インラインビューという方式を使います。
要は副問合せ、サブクエリです。

UPDATE
(SELECT
  DS.KEYSEQ
  ,DS.HYOJI_NM
  ,M.HYOJI_NM DISP
 FROM
  DATA DS , MASTER M
 WHERE
  DS.KEYSEQ = M.KEYSEQ
)
SET HYOJI_NM = DISP


何のことはない、サブクエリでKEY結合したものを外でSETしているだけです。

Oracleでできるので、他のRDBMSでも同等の機能はありそうですね。

暫くOracleをさわっているので、それ関連の記事が続きそうです。

0 件のコメント: