oracle触发器在表中插入新行时更新新的视图行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle触发器在表中插入新行时更新新的视图行相关的知识,希望对你有一定的参考价值。
有人可以帮我在oracle表达式视图x上编写一个触发器,它通过select查询从另一个表y填充数据。
逻辑:在表y中插入新行后;当表y中插入的行上的新列的值为'xyz'时,我想基于插入表y的新行上的条件'xyz'更新表达式视图x的某些列。
有人可以帮忙吗?
钱德拉
答案
这就是我理解这个问题的方式(尽管通过阅读评论而不是“表达视图”使我感到困惑的问题)。
这将是一个基于触发器的解决方案;它检查输入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>
以上是关于oracle触发器在表中插入新行时更新新的视图行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用触发器在同一张表中插入新行(Oracle PL/SQL 10G)?
如何创建一个 Postgres 11 触发器函数,该函数在插入或更新到表“a”时在表“b”中插入一个新行?