のOracle DB 12.1にtab1というテーブルがあるとします。このテーブルにはrecord_id(NUMBER型)という列があります。 exchg_id。単一のUPDATE文(Oracle)に実行IDを追加する方法
このレコードIDは、新しい行のバッチがテーブルに挿入されると常に空です。私がする必要があるのは、条件...WHERE EXCHG_ID = 'something'
を満たし、そのような行の数がNであるすべての行に対してrecord_idに値1..Nを設定することです。もちろん、これを手続き的に(for-loop内で)行う方法はわかっていますが私は1つのUPDATEステートメントを使用するより速い方法があるかどうかを知りたいと思います。私はこのような何かを想像します:
UPDATE tab1 SET record_id = {1..N} WHERE exchg_id = 'something';
あなたの助けをたくさん!
更新:更新の順番は重要ではありません。具体的な注文は必要ありません。任意の与えられたexchg_idに対して一意のrecord_idの1..Nが必要です。
を使用し、10を言います。 3.4。任意のexchg_idの(行の)任意の順序で? – GurV
はい、私は行の順序は気にしません。元のテキストでそれを指摘して申し訳ありません – Johnnyjanko
この "record_id"を新しい行に追加したいと仮定した場合、既にテーブルにあった行と区別できますか?あるいは、条件がすでにそれをしているのでしょうか、おそらく "added_date>(何か)"のような条件ですか? – mathguy