Oracleでは、ビューを介してレコード(行)を挿入または更新できますか?
Oracleのビューは、特定の条件下で更新可能です。扱いにくい場合があり、通常ははお勧めできません。
更新可能なビューに関する注意
更新可能なビューは、ベーステーブルの行を挿入、更新、または削除するために使用できるビューです。本質的に更新可能なビューを作成するか、任意のビューでINSTEAD OFトリガーを作成して更新可能にすることができます。
本質的に更新可能なビューの列を変更できるかどうか、およびその方法を学習するには、USER_UPDATABLE_COLUMNSデータディクショナリビューを照会します。このビューで表示される情報は、本質的に更新可能なビューでのみ意味があります。ビューが本質的に更新可能であるためには、次の条件が満たされている必要があります。
また、本質的に更新可能なビューに疑似列または式が含まれている場合、これらの疑似列または式のいずれかを参照するUPDATE文でベース表の行を更新することはできません。
結合ビューを更新可能にするには、次の条件がすべて満たされている必要があります。
Oracleには、ビューを更新可能にする2つの異なる方法があります。
代わりのトリガーから離れて、ビューを介さずに、基になるテーブルを直接更新するコードを取得します。
ビューを介してレコードを更新できるのは2回あります。
一般に、INSTEAD OFトリガーを特に記述していない限り、ビューへの挿入を実行できることに依存すべきではありません。更新の実行に役立つように記述できるINSTEAD OF UPDATEトリガーもあります。
[〜#〜] yes [〜#〜]、更新およびビューへの挿入が可能で、その編集は元のテーブルに反映 ....
[〜#〜] but [〜#〜]
1-ビューには、テーブル上のすべてのNOT NULL値が必要です。
2-アップデートにはテーブルと同じルール ...「他の外部キーに関連する主キーの更新など」が必要です...