需要有关PL / SQL数据库触发器的帮助

时间:2018-07-01 03:30:44

标签: plsql triggers

我有一个数据库触发器before insert on emp表。我想添加sal, comm from emp_test表,并希望通过触发器将这些值用作emp表中的默认值。知道怎么做吗?

1 个答案:

答案 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.