あなたはコメントで、「問題がどのように発生するかを見つけることができなかった」と述べました。(強調を追加) 方法は次のとおりです。
テーブルの「登録」がこのようなデータから始まるとしましょう。
a b id_report
--
1 10 13
1 11 13
1 12 13
2 27 14
2 33 14
機能的な依存関係 a->id_report は引き続き保持されます。「a」の値がわかると、「id_report」の値が 1 つだけ見つかります。
しかし、dbms はその依存関係を直接強制することはできません。これは、dbms がこの更新ステートメントをエラーなしで実行できることを意味します。
update registration
set id_report = 15
where a = 1 and b = 10;
a b id_report
--
1 10 15
1 11 13
1 12 13
2 27 14
2 33 14
今、あなたのデータは壊れています。「a」の値がわかると、「id_report」の値が2 つ見つかります。前の表では、「a」が 1 であることがわかっているということは、「id_report」が 13 であることがわかっていることを意味していました。「a」が 1 の場合、id_report は 13 または 15 のいずれかになります。