Book
を確実にしようとしていると思います Pname
を変更するたびに、レコードが更新されます Publisher
の列 テーブルですが、Oracleにはon update cascade
がありません 。
こちら
を参照してください。 references
の構文図 条項。
Oracleで主キーを変更するには、いくつかのオプションがあります。
-
制約を延期する (外部キー)コミットするまで確認してから、トランザクション内の親と子の両方を更新します。
-
新しいを作成する 更新された詳細を持つ親は、すべての子を変更してから、元の親を削除します。もちろん、すべてのトランザクションで。
-
可変データをキーとして使用するのをやめます。 DBAが、真のデータではなく人工(代理)キーを使用する必要があることを私に納得させるのに長い時間がかかりましたが、これが最終的に私を魅了したユースケースでした。人工キー(変更する必要がない)を使用すると、この問題は完全に解消されます。