Helloblock写作)
SQL> conn scott/oracle
使用scott用户操作,不要使用sys帐号操作。
1、创建一张测试表tb1:
SQL> create table tb1
(id int primary key,
name varchar2(20)
);
2、创建序列seq_id:
SQL> create
sequence seq_id
minvalue 1
--最小值start with 1 --初始值
increment by 2 --每次增长量
maxvalue 999999999999 --最大值
nocache --序列不放在缓存中
nocycle; --序列不循环
3、查看序列是否可用:
SQL> select
seq_id.nextval from dual;
NEXTVAL
----------
1
4、创建行级触发器:
SQL> create
or replace trigger tri_tb1_insert
before insert on tb1 --插入前触发for each row --行级触发器declare
id int;
begin
--1: --获取一个序列号dbms_output.put_line('----------');
select seq_id.nextval into id from dual;
:new.id:=id;
--2: --把序列号添加到即将插入的表中end;
/
5、测试触发器是否可以实现序列号自增长:
SQL> insert into tb1(name)
values('zhangsan');
1 row created.
SQL> select * from tb1;
ID NAME
----------
----------------------------------------
3 zhangsan
SQL> insert into tb1(name) values('lisi');
1 row created.
SQL> select * from tb1;
ID NAME
----------
----------------------------------------
3 zhangsan
5 lisi
看到tb1表中的id列数据是自动输入的。