私たちは次のことを考えてみましょう:更新可能なビュー(オラクル)
create view view_1 as
(
select key, data from some_table_or_view;
);
create table table_1
(
key
more_data
);
create view view_2 as
(
select v1.key, v1.data, t1.more_data
from view_1 v1, table_1 t1
where v1.key = t1.key
);
create table table_2 as
(
key
data
more_data
);
create view view_3 as
(
select key, data, more_data from view_2
union
select key, data, more_data from table_2
);
だから基本的に、我々は、2つのデータフィード、参加から来ている1、生データである1に参加しています。
私は次のことができるようにしたいと思います。
これは何とか "BLAH_KEY" はtable_1
か
table_2
から来ているかどうかに応じ
table_1
か
table_2
のいずれかを更新
update view_3 set more_data = 'BLAH_MORE_DATA' where key = 'BLAH_KEY';
。
現在、私は考えることができる唯一の方法は次のとおりです。その後、
create view view_3 as
(
select 'TAB1' as source, key, data, more_data from view_2
union
select 'TAB2' as source, key, data, more_data from table_2
);
とソース列をチェックし、適切なテーブルを更新PL/SQL関数を使用してアップデートを行うが、これは私が保管しなければならないことを意味ビューとPL/SQLファンクションを同期させます。
私はこれを行うより良い方法をお探しです。
複雑なロジックを実装するには、PL/SQLプロシージャを使用するのがいい方法です:)私はschurikのトリガの答えをうまく使いこなしましたが、これは動作するためです。 –