【SQL】UPDATEを実行しても更新されない

このページでは、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文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。