oracle数据库表用序列实现主键自增张
oracle中没有自增字段,可通过序列+触发器间接实现,一般要经过一下几步:
注意:序列和触发器必须建立在同一个用户名下否则运行出错
1建立数据表
createtable表名(
userid number(10) primarykey,
username varchar2(20)
);
2创建自动增长序列
CREATE
SEQUENCE 序列名
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
CACHE
10
;
3创建触发器
CREATE
TRIGGER
触发器名 BEFORE
insert
ON
表名
FOR
EACH ROW
begin
select
序列名.nextval
into
:New.主键名
from
dual;
end
;
4 提交
commit;
5 测试
反复执行如下语句:
insert into Test_Increase(Username) values ( ' test ' )
6 查看插入结果:
userid username
1 test
2 test
3 test
4 test
5 test
6 test
7 test
8 test
9 test