このページでは、ORACLEデータベースのSQLで、UPDATE文を実行しても更新されない場合について、解説していきます。
UPDATE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】UPDATE文の書き方:サンプル多数あり
1.UPDATE文の更新対象がない
UPDATE文を実行しても更新されない場合の多くは、更新結果が0件になっていることです。UPDATE文は更新対象が0件でも正常終了します。
例えば、次のUPDATE文はWHERE句に「0=1」という条件があるので、絶対に更新対象が0件となりますが、「0件更新しました」ということで正常終了します。
UPDATE tab1 SET col1 = 'A' WHERE 0=1;
更新対象がない場合については、WHERE句の条件を確認する必要があります。更新対象がない場合については「【SQL】UPDATE文で更新対象なし0件でもエラーにならない」でもう少し詳しく解説していますのでぜひ参考にしてください。
2.UPDATE文がエラーになっている
UPDATE文がSQLエラーとなって、実行不可になっている場合も更新されません。
SQLがエラーになっていないか、どのようなエラーになっているか、ログを確認して、対応しましょう。
3.UPDATE文が実行されていない
まず最初に確認すべきことですが、本当にUPDATE文が実行されているか今一度確認しましょう。
プログラムのバグや不具合で、UPDATE文が実行されていない場合があります。プログラム自体は動いたけど、SQLが実行されていなかったというケースもあります。
こちらもログを確認し、実行されていることを確認しましょう。UPDATE文が実行されていなければ、実行されるように対応しましょう。
まとめ
UPDATE文が実行されているのに更新されないのは、更新対象が存在しない場合やエラーとなっている場合です。
さらには、プログラム自体は実行されていても、SQLが発行されていないこともありますので、今一度確認が必要です。
この他にも、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】UPDATE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。