職場では、基本的に次の列を含む設定を保持するテーブルがあります。
PARAMNAME
VALUE
ほとんどの場合、新しい設定が追加されますが、まれに設定が削除されることがあります。残念ながら、これは、以前にこの値を更新した可能性のあるスクリプトは、更新の結果が " 0 rows updated
" になり、予期しない動作につながるにもかかわらず、引き続き更新することを意味します。
この状況は、回帰テストの失敗によって最近発見されましたが、システム内のデータが異なる理由を十分に調査した結果です。
私の質問は次のとおりです。更新の結果、ゼロ行が更新されたときにエラー状態を生成する方法はありますか?
ここに私が考えたいくつかのオプションがありますが、どれも実際にはそれほど望ましいものではありません:
- 失敗した更新を通知して例外をスローする PL/SQL ラッパー。
- 誰も/スクリプトが手動で更新を行うのを止めないため、理想的ではありません。
- 例外をスローするテーブルのトリガー。
- トリガーを段階的に廃止するという現在のポリシーに反します。
- 設定が削除されるたびにトリガーを更新し、廃止された設定のリストを維持する必要があります (除外を行う場合)。
- テーブルの変更に問題がある可能性があります (現在存在する設定を照会して含める場合)。