create or replace trigger t_trg
before insert or update on ttt
for each row
begin
select new_id.nextval into :new.n from dual;
end;create table ttt (n number ,v varchar2(10)); 这个触发器不知道为什么不可用????
before insert or update on ttt
for each row
begin
select new_id.nextval into :new.n from dual;
end;create table ttt (n number ,v varchar2(10)); 这个触发器不知道为什么不可用????
create or replace trigger t_trg
before insert or update on ttt
for each row
begin
select new_id.nextval into :new.n from dual;
end;
CREATE SEQUENCE new_id;
create table ttt (n number ,v varchar2(10));
下边是运行结果。
SQL> create or replace trigger t_trg
2 before insert or update on ttt
3 for each row
4
5 begin
6 select new_id.nextval into :new.n from dual;
7 end;
8 /触发器已创建SQL> insert into ttt values(0, 'abc');已创建 1 行。SQL> insert into ttt values(0, 'abc');已创建 1 行。SQL> insert into ttt values(0, 'abc');已创建 1 行。SQL> select * from ttt; N V
---------- ----------
1 abc
2 abc
3 abc
before insert or update on ttt
for each row
begin
select new_id.nextval into :new.n from dual;
end;
向上面这样通过触发器来使用sequence还不如在插入数据的时候作如下处理:
insert into ttt(n,v) values(your_sequence_name.nextval,'your_v_value');