我有一个数据库触发器before insert on emp
表。我想添加sal, comm from emp_test
表,并希望通过触发器将这些值用作emp
表中的默认值。知道怎么做吗?
答案 0 :(得分:0)
在您提供我在评论中发布的问题的答案之前,您可以按照以下方式进行操作。看看是否可以调整。
EMP_TEST表仅包含一行(这是愚蠢的一种;您宁可将EFA表中的这些列使用DEFAULT值)。
RangeSlider {
from: 0
to: 100
first.value: 25
second.value: 75
first.onValueChanged: console.debug("RangeSlider first value is " + first.value)
second.onValueChanged: console.debug("RangeSlider second value is " + second.value)
}
如果提供,则触发器将获取SAL和COMM值;否则,它将从EMP_TEST表中获取值。
SQL> create table emp_test (sal number, comm number);
Table created.
SQL> insert into emp_test (sal, comm) values (3000, 100);
1 row created.
测试:我没有提供SAL值(因此触发器将插入EMP_TEST一个),但是我确实提供了COMM:
SQL> create or replace trigger trg_bi_emp
2 before insert on emp
3 for each row
4 begin
5 select nvl(:new.sal, t.sal),
6 nvl(:new.comm, t.comm)
7 into :new.sal,
8 :new.comm
9 from emp_test t;
10 end;
11 /
Trigger created.