如何在 SQL 触发器的 INTO 部分添加额外的列
How to add extra column in the INTO section of SQL Trigger
如何在我的代码的下面的 INTO 部分连同我的 Column_1 添加一个额外的列(比如 column_2)。我假设我们可以通过添加逗号 (,) 并仅添加 column_2(像这样 INTO :new.Column_1, new.column_2)来做到这一点。我错过了什么?
create or replace trigger trigger_name
BEFORE INSERT
ON table_name
FOR EACH ROW
BEGIN
SELECT SEQUENCE_NUMBER.NEXTVAL
INTO :new.Column_1
FROM dual;
END;
很容易确认你是对的(或错的)。我希望你在过去的 6 小时内得到了答案。如果没有,这里有一个例子:
SQL> create table test
2 (id number,
3 datum date);
Table created.
SQL> create sequence seq_test;
Sequence created.
SQL> create or replace trigger trg_bi_test
2 before insert on test
3 for each row
4 begin
5 select seq_test.nextval, sysdate
6 into :new.id, :new.datum
7 from dual;
8 end;
9 /
Trigger created.
SQL> insert into test (id) values (-1);
1 row created.
SQL> select * From test;
ID DATUM
---------- -------------------
1 21.06.2019 21:54:08
SQL>
如何在我的代码的下面的 INTO 部分连同我的 Column_1 添加一个额外的列(比如 column_2)。我假设我们可以通过添加逗号 (,) 并仅添加 column_2(像这样 INTO :new.Column_1, new.column_2)来做到这一点。我错过了什么?
create or replace trigger trigger_name
BEFORE INSERT
ON table_name
FOR EACH ROW
BEGIN
SELECT SEQUENCE_NUMBER.NEXTVAL
INTO :new.Column_1
FROM dual;
END;
很容易确认你是对的(或错的)。我希望你在过去的 6 小时内得到了答案。如果没有,这里有一个例子:
SQL> create table test
2 (id number,
3 datum date);
Table created.
SQL> create sequence seq_test;
Sequence created.
SQL> create or replace trigger trg_bi_test
2 before insert on test
3 for each row
4 begin
5 select seq_test.nextval, sysdate
6 into :new.id, :new.datum
7 from dual;
8 end;
9 /
Trigger created.
SQL> insert into test (id) values (-1);
1 row created.
SQL> select * From test;
ID DATUM
---------- -------------------
1 21.06.2019 21:54:08
SQL>