oracle触发器在表中插入新行时更新新的视图行

问题描述 投票:-2回答:1

有人可以帮我在oracle表达式视图x上编写一个触发器,它通过select查询从另一个表y填充数据。

逻辑:在表y中插入新行后;当表y中插入的行上的新列的值为'xyz'时,我想基于插入表y的新行上的条件'xyz'更新表达式视图x的某些列。

有人可以帮忙吗?

钱德拉

database oracle triggers oracle12c
1个回答
0
投票

这就是我理解这个问题的方式(尽管通过阅读评论而不是“表达视图”使我感到困惑的问题)。

这将是一个基于触发器的解决方案;它检查输入A列的值是否大于100(这是你的“if condition”);如果是这样,它会修改C和D列。如果没有,它什么都不做。

SQL> create table test (a number, b number, c number, d number);

Table created.

SQL> create or replace trigger trg_bi_test
  2    before insert on test
  3    for each row
  4    when (new.a > 100)
  5  begin
  6    :new.c := 3;
  7    :new.d := 4;
  8  end;
  9  /

Trigger created.

SQL> insert into test (a) values (50);

1 row created.

SQL> insert into test (a) values (200);

1 row created.

SQL> select * from test;

         A          B          C          D
---------- ---------- ---------- ----------
        50
       200                     3          4

SQL>
© www.soinside.com 2019 - 2024. All rights reserved.