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

时间:2018-03-28 10:34:12

标签: database oracle triggers oracle12c

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

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

有人可以帮忙吗?

钱德拉

1 个答案:

答案 0 :(得分:0)

这就是我理解这个问题的方法(不过,更多是通过阅读评论而不是一个问题,其表达方式让我感到困惑)。

这将是一个基于触发器的解决方案;它会检查输入A列的值是否大于100(表示"如果条件");如果是这样,它会修改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>