• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ROWNUMでUPDATEをしたいのですが・・・。)

SQL初心者がROWNUMを使用したUPDATE文で一意制約違反が発生する問題

このQ&Aのポイント
  • SQL初心者が、テーブルの一意制約違反が発生する問題に直面しています。
  • 現在、ROWNUMを使用してNUMBERを更新しようとしているが、一意制約違反が発生してしまう。
  • この問題を解決するためには、UPDATE文の条件を見直す必要がある。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ROWNUMを使った更新は不可能ではありません。 更新で使用しているサブクエリが、更新すべき値を1コ見つけてくるSQLであれば 正しく処理できます。 NUMBERカラムの再採番が目的だと思うので、 update M_PATTERN X set X.NUMBER= ( select count(*) + 1 from M_PATTERN Y where X.ESTAB=Y.ESTAB and X.PATTERN=Y.PATTERN and Y.NUMBER<X.NUMBER ) where X.ESTAB='1' and X.PATTERN='00'; な感じで、ROWNUMを使わない解決が良いと思います。

tak_cha77s
質問者

お礼

回答ありがとうございます。 ご推察の通り、再採番がしたかったんです。 確かに、それを目的とするならこちらの方がSQLがすっきりしていて、わかりやすいですね。 実行させたところ、意図した更新が出来ました。 ありがとうございました。

関連するQ&A